create or raplace procdure proc1
(id in number,name in nvarchar2,result out number)
is
begin
insert into student values(id,name);
end;谁帮我写一个,运行这个存储过程的pl/sql语句。
比如:
begin
decalre count number;
proc1(1,zhang,3);
end;像这个样子的。我不大会啊。
(id in number,name in nvarchar2,result out number)
is
begin
insert into student values(id,name);
end;谁帮我写一个,运行这个存储过程的pl/sql语句。
比如:
begin
decalre count number;
proc1(1,zhang,3);
end;像这个样子的。我不大会啊。
exec pd_test_proc1 _user(1,'小王',:dd);
--存储过程增加异常判断和事务控制
CREATE OR REPLACE PROCEDURE PROC1 --replace你写错了,procedure 也写错了
(i_ID IN NUMBER, --在定义参数的同时一定注意区分建议写成这种形式
i_NAME IN NVARCHAR2,
o_RESULT OUT NUMBER) IS --这里的out参数在存储过程中必须给他赋值,否则存储过程编译出错。
BEGIN
INSERT INTO STUDENT VALUES (i_ID, i_NAME);
o_RESULT := 0; --这里增加返回值
COMMIT; --这里增加事务控制
EXCEPTION
WHEN OTHERS THEN --这里是异常处理
ROLLBACK;
o_RESULT := 1;
END;--调用
DECLARE
V_ID NUMBER := 1;
V_NAME NVARCHAR2(100) := 'zhang';
V_RESULT NUMBER;
BEGIN
PROC1(V_ID, V_NAME, V_RESULT);
END;--或者
DECLARE
V_RESULT NUMBER;
BEGIN
PROC1(1, 'zhang', V_RESULT);
END;
这个中的那个事务commit是固定的吗?还是你自己定义的?
2、你不能将一个事务一直挂在那里。
3、但是加与不加就看你的业务逻辑了,如果这个程序是一个子程序,那就不加,如果是个主程序那就加上。
根据你的具体情况判断。典型的理解如银行转帐 A向B转100元
A账户减少100元, B账户增加100元, 这是两个步骤,但是是一个事务,中间一个环节出错要全部rollback
若A账户减少100元后commit,B账户增加100元失败,那么A账户减少的100元不能被回滚了就。
我是想知道,这个commit我可以直接用吗?还是我要自己定义(我自己写)一个?
另外:我想知道,怎么测试我的oracle语句是否出错了,就像程序中的断点之类的……,有没有?
===>commit 是数据库关键字,当然可以直接用。
另外:我想知道,怎么测试我的oracle语句是否出错了,就像程序中的断点之类的……,有没有?
===>plsql developer 工具有debug测试功能可以用它测试。