首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我需要将下面的函数从DB2转换成Oracle,有人能帮我吗?我对DB2一无所知

我需要将下面的函数从DB2转换成Oracle,有人能帮我吗?我对DB2一无所知
EN

Stack Overflow用户
提问于 2020-09-03 13:05:06
回答 1查看 44关注 0票数 1

我需要将下面的函数从DB2转换到Oracle,有人能帮我吗?我对DB2一无所知:

代码语言:javascript
运行
复制
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  ;
EN

回答 1

Stack Overflow用户

发布于 2020-09-03 13:37:16

所有参数都是未使用的,如果它们未使用,则位weird.You需要将其删除。

对我来说,它看起来很简单,它只是从函数返回一个自定义的表/类型。以下是我为解决您的问题所做的微薄努力

如果没有自定义类型,第一步是创建自定义类型

代码语言:javascript
运行
复制
create or replace type CustomerType(
        ID Varchar2(20),
        DEPTNUM Number,
        AVGSAL Number,
        EMPCNT Number,
        WORKDEPT Number
    ); 

二是修改plsql中的函数

代码语言:javascript
运行
复制
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;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63717161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档