DB2 7.2 How to create a stored prodedure? (VC 6.0 has installed)

ji_jian24 2006-08-22 02:02:00
OS:Windowss XP
I has installed Visual C++ 6.0 in default path.
And, I has run the cmd for setup environment as follows:

-------------------------------------------
@echo on
set %DB2PATH%=C:\Program Files\SQLLIB
rem Setting the SQL PROCEDURE environment:
db2set DB2_SQLROUTINE_COMPILER_PATH="c:\Progra~1\Micros~1\vc98\bin\vcvars32.bat"
db2set DB2_SQLROUTINE_COMPILE_COMMAND="cl -Od -W2 /TC -D_X86_=1 -I%DB2PATH%\include SQLROUTINE_FILENAME.c /link -dll -def:SQLROUTINE_FILENAME.def /out:SQLROUTINE_FILENAME.dll %DB2PATH%\lib\db2api.lib"
@echo off
-------------------------------------------

Ref url: http://publib.boulder.ibm.com/infocenter/db2v7luw/index.jsp?topic=/com.ibm.db2v7.doc/db2ax/sampgm.htm

But, while I build a Procedure in IBM DB2 Stored Procedure Builder, errors occured.

The procedure is:
---------------begin procedure----------------
CREATE PROCEDURE DB2ADMIN.Proc1 ( )
LANGUAGE SQL
P1: BEGIN
insert into tbl_char (id) values ('2-testclp-1');
END P1
---------------end procedure----------------

And the error is:
---------------begin error----------------

DB2ADMIN.PROC1 - Create stored procedure returns -7032.

DB2ADMIN.PROC1:

*** BIND C:\PROGRA~1\SQLLIB\function\routine\sqlproc\VD00\DB2ADMIN\tmp\P5034130.sqc ***


LINE MESSAGES FOR P5034130.sqc

------ --------------------------------------------------------------------

SQL0060W The "C" precompiler is in progress.

SQL0091W Precompilation or binding was ended with "0"

errors and "0" warnings.



*** COMPILE C:\PROGRA~1\SQLLIB\function\routine\sqlproc\VD00\DB2ADMIN\tmp\P5034130.c ***

DB2_SQLROUTINE_COMPILER_PATH=c:\Progra~1\Micros~1\vc98\bin\vcvars32.bat

DB2_SQLROUTINE_COMPILE_COMMAND=cl -Od -W2 /TC -D_X86_=1 -I C:\Program Files\SQLLIB\include SQLROUTINE_FILENAME.c /link -dll -def:SQLROUTINE_FILENAME.def /out:SQLROUTINE_FILENAME.dll C:\Program Files\SQLLIB\lib\db2api.lib

@echo on

set SQLROUTINE_FILENAME=P5034130

set db2path=C:\PROGRA~1\SQLLIB


cl -Od -W2 /TC -D_X86_=1 -I C:\Program Files\SQLLIB\include P5034130.c /link -dll -def:P5034130.def /out:P5034130.dll C:\Program Files\SQLLIB\lib\db2api.lib



*** C:\PROGRA~1\SQLLIB\function\routine\sqlproc\VD00\DB2ADMIN\tmp\P5034130.def ***

LIBRARY P5034130

EXPORTS _pgsjmp@4

pgsjmp=_pgsjmp@4

C:\PROGRA~1\SQLLIB\function\routine\sqlproc\VD00\DB2ADMIN\tmp>set SQLROUTINE_FILENAME=P5034130

C:\PROGRA~1\SQLLIB\function\routine\sqlproc\VD00\DB2ADMIN\tmp>set db2path=C:\PROGRA~1\SQLLIB

C:\PROGRA~1\SQLLIB\function\routine\sqlproc\VD00\DB2ADMIN\tmp>cl -Od -W2 /TC -D_X86_=1 -I C:\Program Files\SQLLIB\include P5034130.c /link -dll -def:P5034130.def /out:P5034130.dll C:\Program Files\SQLLIB\lib\db2api.lib

----------------------------------------------------------------------------

SQL7032N SQL procedure "PROC1" not created. Diagnostic file is

"P5034130.log". SQLSTATE=42904


DB2ADMIN.PROC1 - Build failed.

DB2ADMIN.PROC1 - Changes rolled back.
---------------end error----------------




I'm agonising about creating a Stored Procedure in DB2 for many days.
Could you give me some suggestions or advices?
3ks a lot!



...全文
249 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mr_Bean 2006-08-24
  • 打赏
  • 举报
回复
---------------begin procedure----------------
CREATE PROCEDURE DB2ADMIN.Proc1 ( )
LANGUAGE SQL
P1: BEGIN
insert into tbl_char (id) values ('2-testclp-1');
END P1
---------------end procedure----------------

maybe not connect to a database before compile?
Mr_Bean 2006-08-24
  • 打赏
  • 举报
回复
SQL7032N未创建 SQL 过程 "<过程名>"。诊断文件为 "<文件名>"。

解释: 未创建 SQL 过程 "<过程名>"。发生了下列情况之一:

o 在此服务器上未安装和配置对 SQL 存储过程的支持。
需要在服务器上安装“DB2 应用程序开发客户机”和 C
编译器才能创建 SQL 过程。 在您的平台上,可能需要设置 DB2
注册表变量 DB2_SQLROUTINE_COMPILER_PATH 才能指向包含 C
编译器环境设置的脚本或批处理文件。

o DB2 未能预编译或编译 SQL 存储过程。 DB2 创建作为包含嵌入式 SQL
的 C 程序的 SQL 过程。 在预编译或编译阶段可以发现在初始分析
CREATE PROCEDURE 语句期间未发现的错误。
Mr_Bean 2006-08-24
  • 打赏
  • 举报
回复

if you confirm that the environment configration param is correct~
i have no idea!
ji_jian24 2006-08-24
  • 打赏
  • 举报
回复
Any another suggestions?
ji_jian24 2006-08-22
  • 打赏
  • 举报
回复
to Mr_Bean(笑熬浆糊) ():
The content of the log file is the same as the content of [begin error-end error].
Mr_Bean 2006-08-22
  • 打赏
  • 举报
回复
to see P5034130.log file!

5,889

社区成员

发帖
与我相关
我的任务
社区描述
IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本
社区管理员
  • DB2
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧