急呀,高分求助,一个调用存储过程的小问题。。。在线等 declarev1 varchar2(100);beginv1 :=funname;...end;/ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 函数可以方便的调用:select uf_name from dual;但是函数中不能有insert !!! 只能写到procedure中 OK!测试:第一种:带返回参数的存储过程SQL> create or replace procedure p_demo(v_col1 in varchar2,v_col2 out varchar2) 2 as 3 begin 4 v_col2:=v_col1||' out!'; 5 end p_demo; 6 /过程已创建。SQL> declare 2 v_1 varchar2(20):='aaa'; 3 v_2 varchar2(30); 4 begin 5 execute immediate 'begin p_demo(:1,:2); end;' using v_1,out v_2; 6 dbms_output.put_line(v_2); 7 end; 8 /aaa out!PL/SQL 过程已成功完成。第二种:使用函数SQL> create or replace function f_demo(v_col1 varchar2) return varchar2 2 as 3 begin 4 return v_col1||' out!'; 5 end f_demo; 6 /函数已创建。SQL> declare 2 v_1 varchar2(20):='aaa'; 3 v_2 varchar2(30); 4 begin 5 execute immediate 'begin :1:=f_demo(:2); end;' using out v_2,v_1; 6 dbms_output.put_line(v_2); 7 end; 8 /aaa out!PL/SQL 过程已成功完成。SQL> 应该没问题了。 大家看看我这个sql为什么查询不出结果啊。 ORACLE 数据库设计 oracle 表连接问题 如何把float字段查询出来后变成numeric(12,2)格式,比如数据库中是2232 ,出来后是2232.00 ora-03113 热备份脚本错误问题 在线等待! 求一存储过程的写法(简单逻辑处理) oms登录???? ORACLE安装 怎么能够从一个datatime类型变量中取得年月日,时分秒,微秒? 我是DBA身份,为什么在DBA Studio中没法用sysdba模式登陆?却只能用nomal来用?
select uf_name from dual;但是函数中不能有insert !!! 只能写到procedure中
测试:
第一种:带返回参数的存储过程
SQL> create or replace procedure p_demo(v_col1 in varchar2,v_col2 out varchar2)
2 as
3 begin
4 v_col2:=v_col1||' out!';
5 end p_demo;
6 /过程已创建。SQL> declare
2 v_1 varchar2(20):='aaa';
3 v_2 varchar2(30);
4 begin
5 execute immediate 'begin p_demo(:1,:2); end;' using v_1,out v_2;
6 dbms_output.put_line(v_2);
7 end;
8 /
aaa out!PL/SQL 过程已成功完成。第二种:使用函数
SQL> create or replace function f_demo(v_col1 varchar2) return varchar2
2 as
3 begin
4 return v_col1||' out!';
5 end f_demo;
6 /函数已创建。SQL> declare
2 v_1 varchar2(20):='aaa';
3 v_2 varchar2(30);
4 begin
5 execute immediate 'begin :1:=f_demo(:2); end;' using out v_2,v_1;
6 dbms_output.put_line(v_2);
7 end;
8 /
aaa out!PL/SQL 过程已成功完成。SQL> 应该没问题了。