【发布时间】:2020-09-25 10:52:10
【问题描述】:
Oracle 存储过程:
create or replace PROCEDURE spu_edt_object3(
o_in VARCHAR,
o_id_object OUT VARCHAR
) as
begin
o_id_object := 'Hello World';
end;
Powerbuilder 代码:
string o_message, param, st,o_id_object
o_message= 'HIiiiiii'
DECLARE proc_update PROCEDURE FOR spu_edt_object3
@a_in => :o_message,
@a_id_object = :o_id_object OUTPUT
USING SQLCA;
EXECUTE proc_update;
if SQLCA.SqlCode <> 0 then
MessageBox("SQL error " + String(SQLCA.SQLDBCode), SQLCA.SQLErrText )
RETURN -1
end if
FETCH proc_update INTO :o_id_object;
if SQLCA.SqlCode <> 0 then
MessageBox("SQL error " + String(SQLCA.SQLDBCode), SQLCA.SQLErrText )
RETURN -1
end if
我收到此错误:
ORA-06550:第 1 行,第 15 列:
PLS-00306:调用“SPU_EDT_OBJECT3”时参数的数量或类型错误ORA-06550:第 1 行,第 15 列:
PL/SQL:语句被忽略
【问题讨论】:
-
您是否尝试过将 PB 中的参数命名为与存储过程中的参数相同? (即“o_in”而不是“a_in”)
标签: powerbuilder