create or replace procedure pro2
(a in int :=0,b in int :=0,c out int)
is
c int :=0;
begin
c:=a+b;
end;
--调用
declare
a int;
b int;
c int;
begin
a := 100;
b := 200;
pro2(a, b, c);
dbms_output.put_line(c);
end;
解决方案 »
- 请教:如何恢复*.dmp备份文件中的某个表中部份的数据??
- 关于sql_trace的疑问
- dbca 无法建库的问题。求救!
- 机子中的一个oracle进程ora_dbwr_ora占用cpu特别大,请问高手,怎么回事?用w命令特别慢
- 求助高手:用vc连接oracle,使用的是ado ,如何能够实现自动判断与数据库是否连接正常,从而实现处理!
- 关于简单的建表语句和修改表语句(字段唯一值的)
- SQLServer到Oracle遇到的问题
- 调试
- 有关oracle安装的问题,求救
- 我想获得oracle中毫秒级的时间单位有什么好办法吗?
- 求问一个select (select a from table) from table的问题?
- 使用SQL将Oracle中同一列的多行记录拼接成一个字符串(有相关列)
x_wy46 你好,我想要的是在function中调用这个存储过程,你给的是在另一个存储过程中调用。
SQL> declare
2 kk varchar2(100);
3 begin
4 PRO_GET_NEXTID_BYCONFIG('GX_SYSTEM_FUNCTION','FUNCTION_ID',kk);
5 dbms_output.put_line(kk);
6 end;
7 /
PL/SQL procedure successfully completed
--创建过程
create or replace procedure pro2
(a in int :=0,b in int :=0,c out int)
is
c int :=0;
begin
c:=a+b;
end;--创建函数,调用上面的存储过过程,接受存储过程的返回值
CREATE OR REPLACE FUNCTION fun_test RETURN id integer IS
declare a int;
b int;
c int;
BEGIN
begin
a := 100;
b := 200;
pro2(a, b, c);
id := c;
return;
END fun_test;--测试
select fun_test() from dual--ps:我也是刚开始写plsql,都是简单的例子,自己也练练手
下面是set前后的显示差异,测试工具为sqlplus
SQL> begin
2 dbms_output.put_line('hello world');
3 end;
4 /PL/SQL 过程已成功完成。SQL> set serveroutput on
SQL> begin
2 dbms_output.put_line('hello world');
3 end;
4 /
hello worldPL/SQL 过程已成功完成。SQL>