使用PRO C预编译时,如何在PL/SQL块用调用存储过程?

[复制链接]
查看11 | 回复0 | 2005-1-27 16:49:00 | 显示全部楼层 |阅读模式
使用PRO C预编译时,如何在PL/SQL块用调用存储过程?
存储过程prc_selTest()定义如下:
CREATE OR REPLACE PROCEDURE prc_selTest (inPhone IN CHAR DEFAULT 'null', cityName OUT CHAR) AS
...
目的是输入手机号,查询对应的归属城市,在SQL PLUS中调用示例如下:
-------------------------------------------------------------------------
SQL> list
1DECLARE
2 outValue VARCHAR(20) := '999';
3BEGIN
4 prc_selTest('1330415',outValue);
5 DBMS_OUTPUT.PUT_LINE('cityName:' || outValue);
6* END;
SQL> /
cityName:丹东
PL/SQL procedure successfully completed.
-------------------------------------------------------------------------
在PRO C源文件中的对应PL/SQL块如下:
-------------------------------------------------------------------------
其它代码...
EXEC SQL BEGIN DECLARE SECTION; /*SQL局部变量描述*/

charphoneNum[15];

charcityName[255];

EXEC SQL VAR phoneNum IS STRING(15);

EXEC SQL VAR cityName IS STRING(255);
EXEC SQL END DECLARE SECTION;
其它代码...
EXEC SQL EXECUTE

DECLARE

outValue VARCHAR(20) := '999';

BEGIN

/*********屏蔽该段代码后,预编译正常*********/

prc_selTest(

honeNum,outValue);

/*********屏蔽该段代码后,预编译正常*********/

:cityName:=outValue;

END;
END-EXEC;
其它代码...
-------------------------------------------------------------------------
编译错误提示如下:
jl-supp:/home/jl-supp/proc>proc iname=test.pc SQLCHECK=SEMANTICS
Pro*C/C++: Release 8.1.5.0.0 - Production on Thu Jan 27 16:30:19 2005
(c) Copyright 1999 Oracle Corporation.All rights reserved.
System default option values taken from: /usr/oracle8/precomp/admin/pcscfg.cfg
Error at line 64, column 4 in file test.pc

prc_selTest(

honeNum,outValue);
...1
PLS-S-00201, identifier 'PRC_SELTEST' must be declared
Error at line 64, column 4 in file test.pc

prc_selTest(

honeNum,outValue);
...1
PLS-S-00000, Statement ignored
Semantic error at line 60, column 3, file test.pc:

DECLARE
..1
PCC-S-02346, PL/SQL found semantic errors
jl-supp:/home/jl-supp/proc>
请问谁知道如何在PL/SQL块用调用存储过程,最好给一个例子,谢谢。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行