JAVA中如何 调整有返回参数的ORACLE存储过程?
比如:CREATE OR REPLACE PROCEDURE COMPARE(YEM IN VARCHAR2,CEM OUT VARCHAR2) ISBEGIN……调用这个存储过程的SQL怎么写 ?JAVA中如何获得这个存储过程返回的参数 CEM?
比如:CREATE OR REPLACE PROCEDURE COMPARE(YEM IN VARCHAR2,CEM OUT VARCHAR2) ISBEGIN……调用这个存储过程的SQL怎么写 ?JAVA中如何获得这个存储过程返回的参数 CEM?
网上例子很多
用jdbc或类似封闭了jdbc的对象操作
declare
v_cem VARCHAR2(100);
begin
COMPARE('abc',v_cem);
dbms_output.put_line(v_cem);
end;
AS
begin
if i_in=1 then
select 'I love you' as i into o_out from dual;
elsif i_in=2 then
select '我爱你!' as i into o_out from dual;
else
select '输入有误!' as errors into o_out from dual;
end if;
end;
/set serveroutput on;
var o_out varchar2(40);
exec test2(1,:o_out);
print o_out;
var v_cem varchar2(10)
exec COMPARE('in参数',:v_cem)
print v_cem
不跟java里接收select语句结果一样嘛......
select code into udata from E where rownum=1;if udata is null then
cem :='b';
dbms_output.put_line(cem);
return;else
cem :='a';
cbms_output.put_line(cem);
end if;这段语句为什么不起作用呢?
SQL> set serveroutput on;
SQL> declare
2 udata number;
3 cem varchar2(10);
4 begin
5 select count(*) into udata from emp where rownum=1;
6 if udata=0 then
7 cem :='b';
8 dbms_output.put_line(cem);
9 else
10 cem :='a';
11 dbms_output.put_line(cem);
12 end if;
13 end;
14 /
aPL/SQL 过程已成功完成。
Compilation errors for PROCEDURE FFDY.ELC_INITError: PLS-00103: 出现符号 "SET"在需要下列之一时:
begin function package
pragma procedure subtype type use <an identifier>
<a double-quoted delimited-identifier> form current cursor
external language
Line: 2
Text: SET SERVEROUTPUT ON;Error: Hint: Variable 'DECLARE' is declared but never used in 'ELC_INIT'
Line: 3
Text: DECLARE
cem :='b';
dbms_output.put_line(cem);
return;else
cem :='a';
cbms_output.put_line(cem);
end if;
测试这个pro,在执行到return时,会有ora-200000:oru-10028:line length overflow 错误