【1 关于 sql】
静态 :所谓的静态 就是大家日常在 中直接运行的 语句,
没有什么好说的。
动态 :动态 是指利用 字符串常量字符串变
量,其中的字符串常量字符串变量可能是 语句,也可能是 语句。
动态 的好处就是,你可以在运行时才知道你的 语句的内容是什么。
( 字符串变量 用处更大)
例如:
表 有 个字段,分别是 ,都是字符型的
如果今天 号,就查 。
今天几号
!待执行的
"#!存放在这里
$
select to_num(to_char(sysdate,'dd')) into from dual;
v_dmlstr:='select col'|| v_num||' from table1 where rownum=1';
EXECUTE IMMEDIATE v_dmlstr into 这样就把结果搞到变量
中
例如:
如果你创建了一个用户
%&'()*$+,*$-
然后你将这个用户加上 ./0 权限(不可以在存储过程中建表)
%&'($*$
切换用户
%&'(*$*$-
当你在这个用户下面写这样的存储过程
$
EXECUTE IMMEDIATE 'create table table2 (id int)';
如果你执行上面的存储过程,不好意思,直接报错(但你可用这个用户
直接在 中建表),报的错是,你这个用户没有权限建表。
解决的方法是:你切换成其他的用户,
%&'($*$
然后切换到这个用户,再执行这个存储过程就行了。
【 关于 )】
) 类型包含三种1隐式 ),显式 ) 和 23)(动态
))