首页 > 数据库 > mysql教程 > 动态SQL四种类型的语句格式_MySQL

动态SQL四种类型的语句格式_MySQL

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
发布: 2016-06-01 14:05:24
原创
1251 人浏览过

1.动态SQL格式1

EXECUTE IMMEDIATE SQLStatement {USING TransactionObject} ;

例如:
字符串 Mysql
Mysql =“创建表员工”&
"(emp_id 整数不为空,"&
“dept_id 整数不为空,”&
“emp_fname char(10) 不为空,”&
“emp_lname char(20) 不为空)”
立即执行:Mysql ;

2.动态SQL格式2

从 SQLStatement {USING TransactionObject} 准备 DynamicStagingArea ;
使用 {ParameterList} 执行 DynamicStagingArea ;

例如:
INT Emp_id_var = 56
准备 SQLSA
FROM“从员工中删除 emp_id=?” ;
使用 :Emp_id_var ;
执行 SQLSA

3.动态SQL格式3

声明光标|程序动态光标| DynamicStagingArea 的程序;
从 SQLStatement {USING TransactionObject} 准备 DynamicStagingArea ;
打开动态光标 {使用参数列表} ;
执行动态过程 {使用参数列表} ;
获取光标|过程 INTO HostVariableList ;
关闭光标|程序;
例如:
整数 Emp_id_var

声明 my_cursor 动态游标用于 SQLSA ;
从“从员工中选择 emp_id”准备 SQLSA ;
打开动态 my_cursor ;
FETCH my_cursor INTO :Emp_id_var ;
关闭 my_cursor ;


4.动态SQL格式4

声明光标|程序动态光标| DynamicStagingArea 的程序;
从 SQLStatement {USING TransactionObject} 准备 DynamicStagingArea ;
DESCRIBE DynamicStagingArea INTO DynamicDescriptionArea ;
打开动态光标|过程使用 DESCRIPTOR DynamicDescriptionArea ;
执行动态光标|过程使用 DESCRIPTOR DynamicDescriptionArea ;
获取光标|过程使用 DESCRIPTOR DynamicDescriptionArea ;
关闭光标|程序;

例如:

字符串 Stringvar, Sqlstatement
整数 Intvar
Sqlstatement = "从员工中选择 emp_id"
从 :Sqlstatement ;
准备 SQLSA 将 SQLSA 描述为 SQLDA ;
声明 my_cursor 动态游标用于 SQLSA ;
使用描述符 SQLDA 打开动态 my_cursor ;
使用描述符 SQLDA 获取 my_cursor ;

// 如果FETCH成功,则输出
// 描述符数组将包含返回的
// 结果集第一行的值。
// SQLDA.NumOutputs 包含
的数量 // 输出描述符。
// SQLDA.OutParmType 数组将包含
// NumOutput 条目,每个条目将包含
// 枚举数据类型 ParmType
的值 // (例如 TypeInteger!或 TypeString!)。

选择案例 SQLDA.OutParmType[1]
CASE 类型字符串!
Stringvar = GetDynamicString(SQLDA, 1)
CASE 类型Integer!
Intvar = GetDynamicNumber(SQLDA, 1)

结束选择
关闭 my_cursor ;

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板