编者按:
长期坚持做完一件小事也是不容易的
【免责声明】文章仅供学习交流,观点代表个人,与任何公司无关。
编辑|SQL和数据库技术(ID:SQLplusDB)
系列文章目录
Oracle PL/SQL例2:处理查询的结果行(基础循环)
Oracle PL/SQL例4:文字(Literals)换行的处理
Oracle PL/SQL例6:声明变量/常量
使用PL/SQL发邮件相关的Oracle ACL (Access Control List)
前言
Oracle PL/SQL基础语法学习15:静态表达式
Static Expressions(静态表达式)介绍
静态常量
constant_name CONSTANT data_type := static_expression;
官方文档Static Constants(静态常量)代码例
CREATE PACKAGE my_debug IS
debug CONSTANT BOOLEAN := TRUE;
trace CONSTANT BOOLEAN := TRUE;
END my_debug;
/
CREATE PROCEDURE my_proc1 AUTHID DEFINER IS
BEGIN
$IF my_debug.debug $THEN
DBMS_OUTPUT.put_line('Debugging ON');
$ELSE
DBMS_OUTPUT.put_line('Debugging OFF');
$END
END my_proc1;
/
CREATE PROCEDURE my_proc2 AUTHID DEFINER IS
BEGIN
$IF my_debug.trace $THEN
DBMS_OUTPUT.put_line('Tracing ON');
$ELSE
DBMS_OUTPUT.put_line('Tracing OFF');
$END
END my_proc2;
/
关于AUTHID DEFINER 和AUTHID CURRENT_USER
AUTHID { CURRENT_USER|DEFINER}
CREATE OR REPLACE PROCEDURE TEST_AUTHID1 AUTHID CURRENT_USER IS
BEGIN
EXECUTE IMMEDIATE 'select * from table1';
END TEST_AUTHID1 ;
/
CREATE OR REPLACE PROCEDURE TEST_AUTHID2 AUTHID DEFINER IS
BEGIN
EXECUTE IMMEDIATE 'select * from table1';
END TEST_AUTHID2 ;
/
8.14 Invoker’s Rights and Definer’s Rights (AUTHID Property)
https://docs.oracle.com/en/database/oracle/oracle-database/19/lnpls/plsql-subprograms.html#GUID-41D23DE7-3C07-41CF-962B-F92B696594B5
Definer’s Rights and Invoker’s Rights (AUTHID clause)
https://docs.oracle.com/en/database/other-databases/timesten/22.1/security/privileges-pl-sql-objects.html#GUID-03BDF2C9-4F55-4584-BAB8-8F38C54018AA
参考连接
Database PL/SQL Language Reference
https://docs.oracle.com/en/database/oracle/oracle-database/19/lnpls/plsql-language-fundamentals.html#GUID-6CDF1EB6-913D-48E7-AFDA-DB4DE45209CE
总结
文章转载自SQL和数据库技术,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。