代码拉取完成,页面将自动刷新
语法请参见图1。
using_clause子句的语法参见图2。
对以上语法格式的解释如下:
USING IN bind_argument用于指定存放传递给动态SQL值的变量,在dynamic_noselect_string中存在占位符时使用,即动态SQL语句执行时,bind_argument将替换相对应的占位符。要注意的是,bind_argument只能是值、变量或表达式,不能是表名、列名、数据类型等数据库对象。如果存储过程需要通过声明参数传递数据库对象来构造动态SQL语句(常见于执行DDL语句时),建议采用连接运算符“||”拼接dynamic_select_clause。另外,动态语句允许出现重复的占位符,相同占位符只能与唯一一个bind_argument按位置一一对应。
--创建表
openGauss=# CREATE TABLE sections_t1
(
section NUMBER(4) ,
section_name VARCHAR2(30),
manager_id NUMBER(6),
place_id NUMBER(4)
);
--声明变量
openGauss=# DECLARE
section NUMBER(4) := 280;
section_name VARCHAR2(30) := 'Info support';
manager_id NUMBER(6) := 103;
place_id NUMBER(4) := 1400;
new_colname VARCHAR2(10) := 'sec_name';
BEGIN
--执行查询
EXECUTE IMMEDIATE 'insert into sections_t1 values(:1, :2, :3, :4)'
USING section, section_name, manager_id,place_id;
--执行查询(重复占位符)
EXECUTE IMMEDIATE 'insert into sections_t1 values(:1, :2, :3, :1)'
USING section, section_name, manager_id;
--执行ALTER语句(建议采用“||”拼接数据库对象构造DDL语句)
EXECUTE IMMEDIATE 'alter table sections_t1 rename section_name to ' || new_colname;
END;
/
--查询数据
openGauss=# SELECT * FROM sections_t1;
--删除表
openGauss=# DROP TABLE sections_t1;
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。