返回首页

gbase数据、南大通用产品文档:GBase8agcluster_insertselect_use_values_optimize

更新日期:2024年09月11日

功能
这个参数用于设置是否把insert into
select…转化成insert into values 的方式。

GBase 8a MPP Cluster 产品手册
6 附录
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
1547
参数取值含义说明

参数= 0:不转换;

参数= 1:转换。
该参数的默认值是0。
表6- 15 参数值范围说明表
默认值
最小值
最大值
0
0
1

在形式上,
动态 SQL 语句像任何其他写入程序的 SQL 语句一样,
除了它不可包含任何主
变量的名称之外。

GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司 - 219 -

准备好的 SQL 语句有两个限制。首先,如果它是 SELECT 语句,则它不可包括
INTO variable 子句。INTO variable 子句指定将列数据放入其内的主变量,而不允许在准备
好的对象的文本中使用主变量。其次,不论主变量的名称通常出现在表达式中的任何位置,
都将问号(?)写作 PREPARE 语句中的占位符。仅 PREPARE 语句可指定问号(?)占位
符。
您可使用 PREPARE 语句以此形式为执行准备语句。
使用 GBase 8s ESQL/C编写下列示例:

EXEC SQL prepare query_2 from
'SELECT * from orders
WHERE customer_num = ? and order_date > ?';
此示例中的两个问号指示当执行该语句时,在那两个位置使用主变量的值。
您可动态地准备几乎任何 SQL 语句。
您唯一不可准备的语句就是与动态 SQL 和游标管理
直接相关联的语句,
诸如 PREPARE 和 OPEN 语句。
在您准备 UPDATE 或 DELETE 语
句之后,最好测试 SQLWARN 的第五个字段来查看您是否使用了 WHERE 子句(请参
阅 SQLWARN 数组)。
准备语句的结果是表示该语句的数据结构。此数据结构与产生它的字符串不一样。在
PREPARE 语句中,您赋予该数据结构一个名称;它是前面示例中的 query_2。使用此名称
来执行准备好的 SQL 语句。
PREPARE 语句不将字符串限制于一个语句。
它可包含多个用分号分隔的 SQL 语句。
下列
示例展示用 GBase 8s ESQL/C 编写的相当复杂的事务:
strcpy(big_query, "UPDATE account SET balance = balance + ?
WHERE customer_id = ?; \ UPDATE teller SET balance =
balance + ? WHERE teller_id = ?;");
EXEC SQL PREPARE big1 FROM :big_query;
当执行此语句的列表时,主变量必须为六个占位的问号提供值。虽然设置多语句列表更为
复杂,但由于在程序与数据库服务器之间发生更少的交换,因此性能往往更好。

功能
该参数用于设定NULL 值。只在format=3 时,该参数有效。
示例
示例1

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
534
--null_value ='\\N'
示例2
-n'\\N'
参数说明
表4- 103 参数说明
参数全称
参数简称
取值范围
默认值
null_value
n
最大15 个字符
\N