存储过程不熟啊,现在有2个问题
1.调用有返回值的存储过程,如果传参数的话,出参的参数用不用也传进去?
如
procedure wwt_test2(inchar in varchar2,outchar out varchar2) is
begin
outchar:=inchar;
end wwt_test2;
procedure wwt_test1 is
myString varchar(1000);
tempString varchar(1000);
sqlText varchar(1000); begin
tempString :='already';
wwt_test2('wwt',tempString); --问题1,如果在这调用wwt_test2方法的话,出参必须要传进去么,可不可以不传(写成这样wwt_test2('wwt')),如果必须传的话
myString:=tempString; 在这里tempString的值是wwt_test2中返回的'wwt'么;是不是如果wwt_test2中有跟wwt_test1出参数中一样的变量,这个变量就被wwt_test1返回值赋值了?tempString :=wwt_test2('wwt',tempString);问题2 在一个wwt_test1中调用另一个有返回值的存储过程B,可不可以这样调wwt_test2,这样直接去赋值。
sqlText:='insert into wwt_table_test values('''||myString||''')';
dbms_output.put_line('==>'||sqlText); end wwt_test1;
1.调用有返回值的存储过程,如果传参数的话,出参的参数用不用也传进去?
如
procedure wwt_test2(inchar in varchar2,outchar out varchar2) is
begin
outchar:=inchar;
end wwt_test2;
procedure wwt_test1 is
myString varchar(1000);
tempString varchar(1000);
sqlText varchar(1000); begin
tempString :='already';
wwt_test2('wwt',tempString); --问题1,如果在这调用wwt_test2方法的话,出参必须要传进去么,可不可以不传(写成这样wwt_test2('wwt')),如果必须传的话
myString:=tempString; 在这里tempString的值是wwt_test2中返回的'wwt'么;是不是如果wwt_test2中有跟wwt_test1出参数中一样的变量,这个变量就被wwt_test1返回值赋值了?tempString :=wwt_test2('wwt',tempString);问题2 在一个wwt_test1中调用另一个有返回值的存储过程B,可不可以这样调wwt_test2,这样直接去赋值。
sqlText:='insert into wwt_table_test values('''||myString||''')';
dbms_output.put_line('==>'||sqlText); end wwt_test1;
解决方案 »
- 出现pls-00103出现"create"
- Oraccle 安装后没服务,在线等。。
- set serverout on,切换用户后dbms_output.put_line(...)没有输出
- oracle stream 多个数据库之间的同步
- 在AIX5.2上安装ORALCE9I,runInstaller执行后,提示:inventery 目录位置无效
- ORACLE92的用户密码忘了
- HP unix环境下的oracle8.1.6,登录系统后,执行sqlplus命令,提示ORA-12541:
- 问个面面的问题
- 关于Oracle系统表的一个小问题
- 关于ORACLE字符集的修改!在线等待,特急(100)!
- Qt/C++程序中 如何取oracle包内输出类型为ref cursor的变量,高手帮忙,谢谢!
- 安装oracle 10g问题,急!
问题2,你是不是说 tempString := wwt_test2('wwt', otherFuncB); 如果这样的话,当然可以。
问题2:你存储过程是通过出参来将结果传递出来,是不能使用 tempString := wwt_test2('wwt', otherFuncB);
按照你 wwt_test2 存储过程的声明,你应该这样使用wwt_test2(otherFuncB, tempString);
问题2 在一个wwt_test1中调用另一个有返回值的wwt_test2,可不可以这样调wwt_test2,这样直接去赋值。tempString :=wwt_test2('wwt',tempString);