Gbase8s 动态 sql 语句介绍
动态 sql 与静态 sql 的不同
静态 sql 需要预先知道每个 sql 语句的确切内容,如表名、列名、where 子句检查了哪些
列。
动态 sql 可以不需要知道这些,在 sql 语句执行时动态改变这些内容,能够很好的响应用
户输入的内容。
动态 sql 使用
可以通过 execute immediate 语句执行动态 sql,execute immediate 需要在存储过程
中使用。
创建一个存储过程,可以用来创建表。
create or replace procedure create_table (table_name char(20), columns
char(512))
dene i char(1024);
let i = 'create table ' || table_name || '(' || columns || ')';
execute immediate i;
end procedure;
call create_table('t1', 'id int, name char(20)');
动态 sql 受限语句
execute immediate 语句不能执行以下 sql 语句:
CLOSE
CONNECT
DECLARE
DISCONNECT
EXECUTE
EXECUTE FUNCTION
EXECUTE PROCEDURE
FETCH
FLUSH
FREE
GET DESCRIPTOR
GET DIAGNOSTICS
OPEN
评论0