1、plsql大小写敏感,代码规则一般为:命令为大写,变量小写;
2、结构
declare
dec var
begin
exe section
exception
exception handle
end;
最简单的空语句
begin
null;
end;
3、不推荐在参数中使用NOCOPY提示符,使用IN/OUT;pass-by-value和pass-by-reference分别对应IN,IN and OUT以及 OUT only.
4、plsql datatype的function不能再command line里面调用,sql datatype的function可以。
5、DETERMINISTIC语句最好不要在有session变量的function中使用,一般在function-based indexes和materialized views上使用;
PIPELINED在function返回collections使用能提高性能,如同nested tables嵌套表或者是VARRAYs,返回system renference cursor时也有此效果。
6、10g 提供的新特性
Built-in Packages
10g release2开始,
DBMS_SCHEDULE 取代 DBMS_JOB 调度和处理批job;
DBMS_COPYTO对大对象进行加密/解密,支持多字符集;
DBMS_MONITORDelivers an API supporting tracing and statistic gathering by sessions;
Compile-Time Warnings
10g release1 开始
可以为session或者database设置,设置方法
ALTER SESSION SET plsql_warnings = 'enable:all';
Conditional Compilation
10g release2开始
设置、使用方法如下:
ALTER SESSION SET PLSQL_CCFLAGS = 'debug:1';单个变量设置
ALTER SESSION SET PLSQL_CCFLAGS = 'name1:value1 [, name(n+1):value(n+1) ]';多个变量设置
使用
BEGIN
$IF $$DEBUG = 1 $THEN $$变量引用
dbms_output.put_line('Debug Level 1 Enabled.');
$END正常的if-then-else此处为END IF
END;
function可以如下使用
CREATE OR REPLACE FUNCTION conditional_type
( magic_number $IF $$DEBUG = 1 $THEN SIMPLE_NUMBER $ELSE NUMBER $END )
RETURN NUMBER IS
BEGIN
RETURN magic_number;
END;
也可以在AS、IS后面使用。
Optimized PL/SQL Compiler
10g release 1
为session设置pl/sql优化参数 ALTER SESSION SET plsql_optimize_level = 0;
为单个procedure设置pl/sql优化参数 ALTER PROCEDURE some_procedure COMPILE plsql_optimize_level = 1;
使用上一个优化参数设置 ALTER PROCEDURE some_procedure COMPILE REUSE SETTINGS;
优化参数具体含义如下
0 No optimization.
1 Moderate optimization, may eliminate unused code or exceptions.
2 (default) Aggressive optimization, may rearrange source code flow.
Regular Expressions
10g release 1
REGEXP_LIKE This searches a string for a regular expression pattern match.
REGEXP_INSTR This searches for the beginning position of a regular expression pattern match.
REGEXP_SUBSTR This searches for a substring using a regular expression pattern match.
REGEXP_REPLACE This replaces a substring using a regular expression pattern match.
引号转换
10g release 1
原 SELECT 'It''s a bird, no plane, no it can''t be ice cream!' AS phrase
FROM dual;
新写法 SELECT q'(It's a bird, no plane, no it can't be ice cream!)' AS phrase
FROM dual;
都是输出It's a bird,no plane,no it can't be ice cream!
pl/sql学习笔记之三 plsql basics
最新推荐文章于 2021-04-03 23:37:55 发布
本文介绍了PL/SQL的基础知识,包括大小写敏感性、基本结构、参数传递方式。还讨论了10g引入的新特性,如内置包DBMS_SCHEDULE、DBMS_COPYTO和DBMS_MONITOR,编译警告、条件编译以及优化级别设置。同时讲解了正则表达式和字符串处理的新方法。
3689

被折叠的 条评论
为什么被折叠?



