从脚本文件读取SQL过程,Oracle
如何从.sql文件中读取存储过程?此文件内容的示例:从脚本文件读取SQL过程,Oracle,oracle,stored-procedures,Oracle,Stored Procedures,如何从.sql文件中读取存储过程?此文件内容的示例: create or replace procedure insert(p_t varchar(20), p_e varchar(10), out p_id number) as begin insert into instrument(type, status) values (p_t, p_e); commit; select max(id) from instrument into p_id; end / ...other proced
create or replace procedure insert(p_t varchar(20), p_e varchar(10), out p_id number)
as begin
insert into instrument(type, status) values (p_t, p_e);
commit;
select max(id) from instrument into p_id;
end /
...other procedures...
我希望在使用命令@“filepath”时创建此过程,但Oracle并没有这样做,而是执行过程的内容
我想创建我所有的程序来阅读我制作的文件,有什么想法吗?首先,请不要调用您的程序
INSERT
。如果这真的被编译了,我会很震惊
其次,您似乎在结束后缺少一个分号代码>并且您需要将/
放在新行上:
create or replace procedure insert_instrument (
p_t varchar(20), p_e varchar(10), out p_id number ) as
begin
insert into instrument(type, status) values (p_t, p_e);
commit;
select max(id) from instrument into p_id;
end;
/
你可以使用这个子句来简化这个过程;它节省了额外的选择,因此操作更快:
create or replace procedure insert_instrument (
p_t varchar(20), p_e varchar(10), out p_id number ) as
begin
insert into instrument(type, status)
values (p_t, p_e)
returning id into p_id;
commit;
end;
/
您是在使用SQL*Plus还是其他工具?非常感谢,过程名称只是一个输入错误:D我已经修复了它,但非常感谢您的“返回”建议。希望澄清您是否打算使用“将id返回p_id”