Oracle PL/SQL 语法
来源:互联网 发布:如何禁止mac地址上网 编辑:程序博客网 时间:2024/05/16 23:44
一、如何创建存储过程:
1 创建不带参数的存储过程:
CREATE OR REPLACE PROCEDURE 存储过程名ISBEGINNULL;--此处做一些数据业务处理END;IS 可以换成 AS 是一样的。BEGIN 和 END之间是存储过程内容,此处为NULL 什么也不做。
2 创建带参数的存储过程:
CREATE OR REPLACE PROCEDURE 存储过程名(param1 in type,param2 out type) ASBEGINNULL;END;in 表示 param1 是传入参数,out 反之;type 表示param 的 类型(Oracle中的合法类型)。
二、变量
1 声明变量
语法:变量名 类型(类型范围)
s_msg VARCHAR2(1000);e_integrity EXCEPTION;
2 为变量赋值
语法:变量名 := 值;
x := 1;s_msg := SUBSTR(a_str,1,6);s_str :='aaa'||'bbb';--字符串用单引号括起,连接符||
3 游标
/*生成游标并赋值*/CURSOR 游标名 IS SELECT…… FROM…… WHERE…… GROUP BY……;
CURSOR cursor_2; --声明select username into cursor_2 from s_user where sex='m';--赋值
三、if /for /while
1 if
IF condition THEN {...statements...}ELSIF condition THEN {...statements...}ELSE {...statements...}END IF;
2 for
(1) 循环遍历游标 create or replace procedure test() as Cursor cursor1 is select name from student; name varchar(20);begin for name in cursor1 LOOP begin dbms_output.putline(name); end; end LOOP;end test;
(2) 循环遍历数组 create or replace procedure test(varArray in myPackage.TestArray) as i number; begin i := 1; for i in 1..varArray.count LOOP dbms_output.putline(i); end LOOP;end test;
3 while
create or replace procedure test(i in number) asbegin while i < 10 LOOP begin i:= i + 1; end; end LOOP;end test;
四、常用函数
SUBSTRTO_CHARADD_MONTHS TO_DATE
五、错误处理
/*OTHERS表示除了声明外的任意错误。SQLERRM是系统内置变量保存了当前错误的详细信息。*/EXCEPTION WHEN OTHERS THEN vs_msg := 'ERROR IN xxxxxxxxxxx_p('||is_ym||'):'||SUBSTR(SQLERRM,1,500); ROLLBACK; --把当前错误记录进日志表。 INSERT INTO LOG_INFO(proc_name,error_info,op_date) VALUES('xxxxxxxxxxx_p',vs_msg,SYSDATE); COMMIT; RETURN; END;
Raise 异常名
PL/SQL 程序段只被编译一次并且以可运行的形式储存,以降低响应时间。在网络环境中,这将减少网络流量和响应时间。
PL/SQL对大小写不敏感,所以,除了在字符串和字符中,小写字母和它对应的大写字母是等价的。
- Oracle PL/SQL语法
- Oracle PL/SQL 语法
- PL/SQL基本语法(ORACLE)
- Oracle:PL/SQL基本语法
- Oracle的PL SQL语法
- oracle--PL/SQL基础语法
- oracle-PL/SQL基本语法
- Oracle PL/SQL语法格式
- ORACLE PL/SQL语法总结
- Oracle PL/SQL入门语法点
- 转:Oracle PL/SQL入门语法点
- Oracle PL/SQL入门语法点
- Oracle PL/SQL入门语法点
- Oracle PL/SQL入门语法点
- Oracle PL/SQL入门语法点
- Oracle速查语法:PL/SQL
- Oracle PL/SQL入门语法点
- 【SQL】Oracle的PL/SQL语法及其拓展数据类型总结
- apache和tomcat区别
- C语言函数型指针和指针型函数的用法和区别
- Log详解
- C# office控件 开发环境的导出
- hive -e "show tables"提示cannot recognize input near 'show' '<EOF>' '<EOF>' in ddl statement
- Oracle PL/SQL 语法
- ARM与51编写程序的区别
- 大牛讲解信号与系统以及数字信号处理
- javascript:你真的了解==与===吗?
- 如何禁止KEIL初始化RAM为零& 如何判断是软复位还是上电复位
- Chromium+GoAgent证书导入
- OpenCV设置摄像头的分辨率
- UML基础大观
- java web server