9 个解决方案
#1
比如说
select要从不同的表,表名是个变量的情况
或者
如in 变量之类的
在存储过程中,如果要用到创建表之类的DDL语句,也要用到动态SQL的
select要从不同的表,表名是个变量的情况
或者
如in 变量之类的
在存储过程中,如果要用到创建表之类的DDL语句,也要用到动态SQL的
#3
另外一些情况
比如说你有些SQL的条件是有一张表的字段拼接而成的就需要用动态sql
比如说你有些SQL的条件是有一张表的字段拼接而成的就需要用动态sql
#4
什么时候都可以用。
example:
DECLARE
V_SQL VARCHAR2(1000);
BEGIN
EXECUTE IMMEDIATE 'create table test(n number)';
FOR I IN 1 .. 5 LOOP
EXECUTE IMMEDIATE 'insert into test values(:1)'
USING I;
END LOOP;
COMMIT;
END;
/
example:
DECLARE
V_SQL VARCHAR2(1000);
BEGIN
EXECUTE IMMEDIATE 'create table test(n number)';
FOR I IN 1 .. 5 LOOP
EXECUTE IMMEDIATE 'insert into test values(:1)'
USING I;
END LOOP;
COMMIT;
END;
/
#5
#6
其实还是不怎么理解
#7
1.DDL一定要用动态SQL来实现。
2.对于一个SQL语句的where条件,是要经过其他处理(比如:if...else...判断后的)要用动态SQL。
我补充两点。
2.对于一个SQL语句的where条件,是要经过其他处理(比如:if...else...判断后的)要用动态SQL。
我补充两点。
#8
学习
#9
如果PL/SQL块中需要执行DDL语句(例如 CREATE,ALTER,DROP语句)、DCL语句(GRANT,REVOKE),或者
在PL/SQL块中需要执行更加灵活的SQL语句(例如在SELECT语句中使用不同的WHERE条件),那啊么就必须使用
动态SQL。
静态SQL和动态SQL的比较:
1. 静态SQL是在编写PL/SQL块时直接嵌入的SQL语句;而动态SQL实在运行PL/SQL块时动态输入的SQL语句。
2. 静态SQL性能要优于动态SQL,因此当编写PL/SQL块时,如果功能完全确定,则使用静态SQL;如果不能确定要执行的SQL,则用动态SQL
在PL/SQL块中需要执行更加灵活的SQL语句(例如在SELECT语句中使用不同的WHERE条件),那啊么就必须使用
动态SQL。
静态SQL和动态SQL的比较:
1. 静态SQL是在编写PL/SQL块时直接嵌入的SQL语句;而动态SQL实在运行PL/SQL块时动态输入的SQL语句。
2. 静态SQL性能要优于动态SQL,因此当编写PL/SQL块时,如果功能完全确定,则使用静态SQL;如果不能确定要执行的SQL,则用动态SQL
#1
比如说
select要从不同的表,表名是个变量的情况
或者
如in 变量之类的
在存储过程中,如果要用到创建表之类的DDL语句,也要用到动态SQL的
select要从不同的表,表名是个变量的情况
或者
如in 变量之类的
在存储过程中,如果要用到创建表之类的DDL语句,也要用到动态SQL的
#2
#3
另外一些情况
比如说你有些SQL的条件是有一张表的字段拼接而成的就需要用动态sql
比如说你有些SQL的条件是有一张表的字段拼接而成的就需要用动态sql
#4
什么时候都可以用。
example:
DECLARE
V_SQL VARCHAR2(1000);
BEGIN
EXECUTE IMMEDIATE 'create table test(n number)';
FOR I IN 1 .. 5 LOOP
EXECUTE IMMEDIATE 'insert into test values(:1)'
USING I;
END LOOP;
COMMIT;
END;
/
example:
DECLARE
V_SQL VARCHAR2(1000);
BEGIN
EXECUTE IMMEDIATE 'create table test(n number)';
FOR I IN 1 .. 5 LOOP
EXECUTE IMMEDIATE 'insert into test values(:1)'
USING I;
END LOOP;
COMMIT;
END;
/
#5
#6
其实还是不怎么理解
#7
1.DDL一定要用动态SQL来实现。
2.对于一个SQL语句的where条件,是要经过其他处理(比如:if...else...判断后的)要用动态SQL。
我补充两点。
2.对于一个SQL语句的where条件,是要经过其他处理(比如:if...else...判断后的)要用动态SQL。
我补充两点。
#8
学习
#9
如果PL/SQL块中需要执行DDL语句(例如 CREATE,ALTER,DROP语句)、DCL语句(GRANT,REVOKE),或者
在PL/SQL块中需要执行更加灵活的SQL语句(例如在SELECT语句中使用不同的WHERE条件),那啊么就必须使用
动态SQL。
静态SQL和动态SQL的比较:
1. 静态SQL是在编写PL/SQL块时直接嵌入的SQL语句;而动态SQL实在运行PL/SQL块时动态输入的SQL语句。
2. 静态SQL性能要优于动态SQL,因此当编写PL/SQL块时,如果功能完全确定,则使用静态SQL;如果不能确定要执行的SQL,则用动态SQL
在PL/SQL块中需要执行更加灵活的SQL语句(例如在SELECT语句中使用不同的WHERE条件),那啊么就必须使用
动态SQL。
静态SQL和动态SQL的比较:
1. 静态SQL是在编写PL/SQL块时直接嵌入的SQL语句;而动态SQL实在运行PL/SQL块时动态输入的SQL语句。
2. 静态SQL性能要优于动态SQL,因此当编写PL/SQL块时,如果功能完全确定,则使用静态SQL;如果不能确定要执行的SQL,则用动态SQL