create or replace procedure ins(temp out varchar2) is
可以的啊, create or replace procedure pro_test(p_in in number) as begin update table a set a.name='T' where a.id=p_in; commit; exception when others then rollback; end;SQL> EXECUTE PRO_TEST(1);
我用PL/SQL 写的, 如果我在SQL window 中输入 select id from aa; 下面就会列出结果 如果我写成 create or replace procedure p_Id(v_id varchar2) as BEGIN v_id:='id'; select v_id from aa; end p_Id; 就不能看到结果.
create or replace procedure p_Id(v_id varchar2) as BEGIN v_id:='id'; select v_id from aa; end p_Id; 是创建存储过程,又不是执行存储过程,怎么有结果啊,最多提示创建成功或失败。
你这个存储过程执行也看不到结果的,感觉楼主对oracle的存储过程了解还太少了
我要测试的话是不是都需要在Command window(我用pl/sql dev 工具的)中写 EXECUTE 命令测试???
感觉Oracle 的存储过程跟 Sql server 很不一样 sql server 可以在 beginend 中 只写 select * from aa; 在 Oracle 中这样写是没意义的,是错误的.
create or replace procedure pro_test(p_in in number) as
begin
update table a set a.name='T' where a.id=p_in;
commit;
exception
when others then
rollback;
end;SQL> EXECUTE PRO_TEST(1);
如果我在SQL window 中输入
select id from aa; 下面就会列出结果
如果我写成
create or replace procedure p_Id(v_id varchar2)
as
BEGIN
v_id:='id';
select v_id from aa;
end p_Id;
就不能看到结果.
as
BEGIN
v_id:='id';
select v_id from aa;
end p_Id;
是创建存储过程,又不是执行存储过程,怎么有结果啊,最多提示创建成功或失败。
sql server 可以在
beginend
中 只写
select * from aa;
在 Oracle 中这样写是没意义的,是错误的.