以前写过DB2的存储过程,不过是用c写的,那时好像DB2并不支持类似PL/SQL的代码

解决方案 »

  1.   

    db2的和oracle的過程大不一樣。
    db2沒有象oracle的pl/sql這樣的語言,只能使用java,c/c++來寫,編譯也很麻煩,移植就更加令人厭煩了。而db2的sql存儲過程只能完成很有限的功能。
    而oracle除了支持java,c/c++外,還可以使用pl/sql來寫,很方便。
      

  2.   

    db2的資料少,但是還是有的:
    http://expert.csdn.net/Expert/topic/1702/1702611.xml?temp=.2064783
    oracle的資料太多了,自己找吧
      

  3.   

    数据库设计中有功能模块,根据其功能用pl/sql语言写一下。
    因C语言都是相通的,pl/sql对你来说并不难。
      

  4.   

    db2编写store procuduce的语法,哪里有?我找不到,谢谢
      

  5.   

    db2 自带一个强大存储过程生成工具(提供java与sql语言),如果要用sql要装vc6(window平台);ebook书不少在IBM站点,免费的不过基本是英文写。
      

  6.   

    db2的存储过程与ORACLE区别很大,不是简单的转换格式就可以了,涉及到变量定义,sequence的使用,还有诸如此类的细节,这样的转换,还不如根据设计重写
      

  7.   

    db2有java存储过程和sql存储过程,在普通的视图内可以看到,但要编辑修改生成需要安装一个db2自带的工具,要使用那个工具需要先安装VC(windows平台下)
      

  8.   

    建议重写,确实 会 C 的人 学习 PL/SQL 是很容易上手的
      

  9.   

    db2的用sql写的存储过程 =〉oracle的过程可能要好一点吧?
    我看看这个类型好像比较简单,个人看法,指点。
      这种转换需要注意些什么?大家说说看
      

  10.   

    那也就是oracle到db2,实现起来比较困难?
    我怎么觉得db2 到oracle会见容易些,以下我所做的比较:用SQL编写的存储过程实例已经能够正确运行 
    DROP PROCEDURE SP_CO_GetCodeValue @
    CREATE PROCEDURE SP_CO_GetCodeValue
    //如果存在则删除!在ORACLE中用 OR REPLACE代替,格式为(CREATE OR REPLACE PROCEDURE SP_CO_GetCodeValue)
     (IN i_SYSTEM_ID VARCHAR(8),
    //传入参数,类型,在ORACLE中数据类型可能存在差异,Oracle格式为(IN i_SYSTEM_ID VARCHAR2(8)) 
    IN i_CODE_ID VARCHAR(8),
    IN i_CODE_VALUE   VARCHAR(60),
    OUT o_CODE_VALUE_DESC VARCHAR(60),
    //输出参数,及类型,在ORACLE中数据类型可能存在差异格式为: (OUT o_CODE_VALUE_DESC VARCHAR2(60))
    OUT o_rtnResult INT)
    LANGUAGE SQL
    //ORACLE中不存在该语句,删除
    BEGIN
    //表示过程体开始,同ORACLE
        SET o_rtnResult = 0;
        SELECT   CODE_VALUE_DESC
        INTO     o_CODE_VALUE_DESC
        FROM     FW_MCDEVAL
        WHERE    SYSTEM_ID     =   i_SYSTEM_ID
        AND      CODE_ID       =   i_CODE_ID
        AND      CODE_VALUE    =   i_CODE_VALUE;
        IF   o_CODE_VALUE_DESC IS NULL
        THEN
             SET    o_rtnResult   =   10;
             RETURN -200;
        END IF;
         //过程体中存在SQL语句,调用方式以及数据类型等方面的异同,导致转换存在差异.具体问题需具体分析,常用的DML,DDL语句格式略有不同,也导致了转换间的差异。
     END @看看,给点意见!