我需要将以下函数从 DB2 转换为 Oracle,有人可以帮忙吗?我不知道 DB2
I need to convert below function in from DB2 to Oracle, can anybody help? I have no idea about DB2
我需要将以下函数从 DB2 转换为 Oracle,有人可以帮忙吗?我不知道 DB2 :
CREATE FUNCTION READMSGS( SOURCE_NAME VARCHAR(12), SOURCE_SCHEMA VARCHAR(12), SOURCE_VERSION VARCHAR(64), EXPLAIN_LEVEL CHAR(1))
RETURNS TABLE ( ID varchar(20),
DEPTNUM INT,
AVGSAL DECIMAL (9,2),
EMPCNT INT,
WORKDEPT INT )
LANGUAGE SQL
DETERMINISTIC
NO EXTERNAL ACTION
READS SQL DATA
RETURN
SELECT ID,
DEPTNUM,
AVGSAL,
EMPCNT,
WORKDEPT
FROM EMP3 ;
所有参数都未使用,如果未使用,需要删除哪些位weird.You。
在我看来很简单,它只是从函数返回自定义 table/type。这是我解决你问题的微弱努力
如果您没有自定义类型,第一步是创建自定义类型
create or replace type CustomerType(
ID Varchar2(20),
DEPTNUM Number,
AVGSAL Number,
EMPCNT Number,
WORKDEPT Number
);
plsql中的二次修改函数
FUNCTION EXPLAINSMSGS(SOURCE_NAME in VARCHAR2,SOURCE_SCHEMA in VARCHAR2, SOURCE_VERSION in VARCHAR2,EXPLAIN_LEVEL in Varchar2) return record is
l_customType CustomerType;
l_ID Varchar2(20);
l_DEPTNUM Number;
l_AVGSAL Nubmer;
l_EMPCNT Number,
l_WORKDEPT Varchar2(100);
Begin
SELECT ID,
DEPTNUM,
AVGSAL,
EMPCNT,
WORKDEPT
INTO l_ID,
l_DEPTNUM,
l_AVGSAL,
l_EMPCNT,
l_WORKDEPT
FROM EMP3 ;
l_customType :=CustomerType(l_ID,l_DEPTNUM,l_AVGSAL,l_EMPCNT,l_WORKDEPT);
Return l_customType;
End;
DB2 函数声明为 DETERMINISTIC。这意味着它将 return 相同的一组行进行 n 次调用。浏览一下这段 DB2 代码,您将不需要 Oracle 中的函数,而是为 select 语句创建一个视图,如
CREATE VIEW explainmsgs AS
SELECT
id,
deptnum,
avgsal,
empcnt,
workdept
FROM emp3
/
我需要将以下函数从 DB2 转换为 Oracle,有人可以帮忙吗?我不知道 DB2 :
CREATE FUNCTION READMSGS( SOURCE_NAME VARCHAR(12), SOURCE_SCHEMA VARCHAR(12), SOURCE_VERSION VARCHAR(64), EXPLAIN_LEVEL CHAR(1))
RETURNS TABLE ( ID varchar(20),
DEPTNUM INT,
AVGSAL DECIMAL (9,2),
EMPCNT INT,
WORKDEPT INT )
LANGUAGE SQL
DETERMINISTIC
NO EXTERNAL ACTION
READS SQL DATA
RETURN
SELECT ID,
DEPTNUM,
AVGSAL,
EMPCNT,
WORKDEPT
FROM EMP3 ;
所有参数都未使用,如果未使用,需要删除哪些位weird.You。
在我看来很简单,它只是从函数返回自定义 table/type。这是我解决你问题的微弱努力
如果您没有自定义类型,第一步是创建自定义类型
create or replace type CustomerType(
ID Varchar2(20),
DEPTNUM Number,
AVGSAL Number,
EMPCNT Number,
WORKDEPT Number
);
plsql中的二次修改函数
FUNCTION EXPLAINSMSGS(SOURCE_NAME in VARCHAR2,SOURCE_SCHEMA in VARCHAR2, SOURCE_VERSION in VARCHAR2,EXPLAIN_LEVEL in Varchar2) return record is
l_customType CustomerType;
l_ID Varchar2(20);
l_DEPTNUM Number;
l_AVGSAL Nubmer;
l_EMPCNT Number,
l_WORKDEPT Varchar2(100);
Begin
SELECT ID,
DEPTNUM,
AVGSAL,
EMPCNT,
WORKDEPT
INTO l_ID,
l_DEPTNUM,
l_AVGSAL,
l_EMPCNT,
l_WORKDEPT
FROM EMP3 ;
l_customType :=CustomerType(l_ID,l_DEPTNUM,l_AVGSAL,l_EMPCNT,l_WORKDEPT);
Return l_customType;
End;
DB2 函数声明为 DETERMINISTIC。这意味着它将 return 相同的一组行进行 n 次调用。浏览一下这段 DB2 代码,您将不需要 Oracle 中的函数,而是为 select 语句创建一个视图,如
CREATE VIEW explainmsgs AS SELECT id, deptnum, avgsal, empcnt, workdept FROM emp3 /