请问几个oracle存储过程语法的问题
发布网友
发布时间:2022-04-07 18:45
我来回答
共3个回答
热心网友
时间:2022-04-07 20:15
1、包中用is和as是同等的,因为在SQL中只能用AS,而在PL/SQL中可以用is,因兼容问题,所以PL/SQL中也可以使用AS;
2、放在begin外面,值得注意的是PL/SQL是块状结构,所以变量都应该的申明部分定义,也就是begin外面;
3、在函数、过程、包的申明部分定义变量时,可以不用Declare,但使用匿名程序时,一定要使用Declare定义变量;
4、纯SQL语句是不用begin/end的。只有PL/SQL语句才使用。
热心网友
时间:2022-04-07 21:33
1 随便 一般用is
2 在begin外面
declare
v_sql varchar2(200)
begin
...
end;
/
3 在存储过程中 变量是直接在is后面定义
而在程序块中,变量时在declare后定义上(如上,declare就相当于is)
4 你所看到的dml语句是在一个sql脚本中,所以不用放在begin end里面。
从你的提问来看 你还没明白存储过程和程序块的概念。
存储过程:
create or replace procere test(
p_date date,
p_num number
) is
v_date date;
v_num number;
begin
....
end procere test;
\
程序块:
declare
v_date date;
v_num number;
begin
....
end;
/
其中的declare就相当于is
如果这个程序块中不需要变量,你可以直接:
begin
....
end;
/
热心网友
时间:2022-04-07 23:07
第一个问题:is和as是可以互用的,用哪个都没关系的
第二个问题:在外面
第三个问题:过程中没有declare关键字,declare用在语句块中
第四个问题:估计你看到的是做游标定义的东东,抑或者直接就一句sql。