华为云云数据库GaussDBDBE_SQL_云淘科技
数据类型介绍
DBE_SQL.DESC_REC
该类型是复合类型,用来存储SQL_DESCRIBE_COLUMNS接口中的描述信息。
DBE_SQL.DESC_REC函数的原型为:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
CREATE TYPE DBE_SQL.DESC_REC AS ( col_type int, col_max_len int, col_name VARCHAR2(32), col_name_len int, col_schema_name VARCHAR2(32), col_schema_name_len int, col_precision int, col_scale int, col_charsetid int, col_charsetform int, col_null_ok BOOLEAN ); |
接口介绍
高级功能包DBE_SQL支持的接口请参见表1。
接口名称 |
描述 |
---|---|
DBE_SQL.REGISTER_CONTEXT |
打开一个游标。 |
DBE_SQL.SQL_UNREGISTER_CONTEXT |
关闭一个已打开的游标。 |
DBE_SQL.SQL_SET_SQL |
向游标传递一组SQL语句或匿名块。 |
DBE_SQL.SQL_RUN |
执行给定游标中的SQL语句或匿名块。 |
DBE_SQL.NEXT_ROW |
读取游标一行数据。 |
DBE_SQL.SET_RESULT_TYPE |
动态定义一个列。 |
DBE_SQL.SET_RESULT_TYPE_CHAR |
动态定义一个char类型的列。 |
DBE_SQL.SET_RESULT_TYPE_INT |
动态定义一个int类型的列。 |
DBE_SQL.SET_RESULT_TYPE_LONG |
动态定义一个long类型的列。 |
DBE_SQL.SET_RESULT_TYPE_RAW |
动态定义一个raw类型的列。 |
DBE_SQL.SET_RESULT_TYPE_TEXT |
动态定义一个text类型的列。 |
DBE_SQL.SET_RESULT_TYPE_UNKNOWN |
动态定义一个未知列(类型不识别时入此接口)。 |
DBE_SQL.GET_RESULT |
读取一个已动态定义的列值。 |
DBE_SQL.GET_RESULT_CHAR |
读取一个已动态定义的列值(指定char类型)。 |
DBE_SQL.GET_RESULT_INT |
读取一个已动态定义的列值(指定int类型)。 |
DBE_SQL.GET_RESULT_LONG |
读取一个已动态定义的列值(指定long类型)。 |
DBE_SQL.GET_RESULT_RAW |
读取一个已动态定义的列值(指定raw类型)。 |
DBE_SQL.GET_RESULT_TEXT |
读取一个已动态定义的列值(指定text类型)。 |
DBE_SQL.GET_RESULT_UNKNOWN |
读取一个已动态定义的列值(类型不识别时入此接口)。 |
DBE_SQL.DBE_SQL_GET_RESULT_CHAR |
读取一个已动态定义的列值(指定char类型)。 |
DBE_SQL.DBE_SQL_GET_RESULT_LONG |
读取一个已动态定义的列值(指定long类型)。 |
DBE_SQL.DBE_SQL_GET_RESULT_RAW |
读取一个已动态定义的列值(指定raw类型)。 |
DBE_SQL.IS_ACTIVE |
检查游标是否已打开。 |
DBE_SQL.LAST_ROW_COUNT |
返回获取行数的累积计数。 |
DBE_SQL.RUN_AND_NEXT |
在游标上执行一组动态定义操作后,读取游标数据。 |
DBE_SQL.SQL_BIND_VARIABLE |
根据语句中的变量,绑定一个值到该变量。 |
DBE_SQL.SQL_BIND_ARRAY |
根据语句中的变量,绑定一组值到该变量。 |
DBE_SQL.SET_RESULT_TYPE_INTS |
动态定义一个int数组类型的列。 |
DBE_SQL.SET_RESULT_TYPE_TEXTS |
动态定义一个text数组类型的列。 |
DBE_SQL.SET_RESULT_TYPE_RAWS |
动态定义一个raw数组类型的列。 |
DBE_SQL.SET_RESULT_TYPE_BYTEAS |
动态定义一个bytea数组类型的列。 |
DBE_SQL.SET_RESULT_TYPE_CHARS |
动态定义一个char数组类型的列。 |
DBE_SQL.SET_RESULTS_TYPE |
动态定义一个数组类型的列。 |
DBE_SQL.GET_RESULTS_INT |
读取一个已动态定义的列值(指定int数组类型)。 |
DBE_SQL.GET_RESULTS_TEXT |
读取一个已动态定义的列值(指定text数组类型)。 |
DBE_SQL.GET_RESULTS_RAW |
读取一个已动态定义的列值(指定raw数组类型)。 |
DBE_SQL.GET_RESULTS_BYTEA |
读取一个已动态定义的列值(指定bytea数组类型)。 |
DBE_SQL.GET_RESULTS_CHAR |
读取一个已动态定义的列值(指定char数组类型)。 |
DBE_SQL.GET_RESULTS |
读取一个已动态定义的列值。 |
DBE_SQL.DESCRIBE_COLUMNS |
描述游标读取的列信息。 |
DBE_SQL.SQL_DESCRIBE_COLUMNS |
描述游标读取的列信息。 |
DBE_SQL.BIND_VARIABLE |
绑定参数接口。 |
DBE_SQL.SQL_SET_RESULTS_TYPE_C |
动态定义一个数组类型的列。 |
DBE_SQL.SQL_GET_VALUES_C |
读取一个已动态定义的列值。 |
DBE_SQL.GET_VARIABLE_RESULT |
读取一个SQL语句执行后的返回值。 |
DBE_SQL.GET_VARIABLE_RESULT_CHAR |
读取一个SQL语句执行后的返回值(指定char类型)。 |
DBE_SQL.GET_VARIABLE_RESULT_RAW |
读取一个SQL语句执行后的返回值(指定raw类型)。 |
DBE_SQL.GET_VARIABLE_RESULT_TEXT |
读取一个SQL语句执行后的返回值(指定text类型)。 |
DBE_SQL.GET_VARIABLE_RESULT_INT |
读取一个SQL语句执行后的返回值(指定int类型)。 |
DBE_SQL.GET_ARRAY_RESULT_TEXT |
读取一个SQL语句执行后的返回值(指定text数组类型)。 |
DBE_SQL.GET_ARRAY_RESULT_RAW |
读取一个SQL语句执行后的返回值(指定raw数组类型)。 |
DBE_SQL.GET_ARRAY_RESULT_CHAR |
读取一个SQL语句执行后的返回值(指定char数组类型)。 |
DBE_SQL.GET_ARRAY_RESULT_INT |
读取一个SQL语句执行后的返回值(指定int数组类型)。 |
建议使用dbe_sql.set_result_type及dbe_sql.get_result定义参数列。
当结果集大于work_mem设定值时会触发结果集临时下盘,但最大阈值不超过512MB。
DBE_SQL.REGISTER_CONTEXT
该函数用来打开一个游标,是后续dbe_sql各项操作的前提。该函数不传入任何参数,内部自动递增生成游标ID,并作为返回值返回给integer定义的变量。
DBE_SQL打开的游标是会话级的变量,不支持跨会话调用打开的游标(如自治事务),如果调用跨会话的游标行为不可预知。
DBE_SQL.REGISTER_CONTEXT函数原型为:
1 2 3 |
DBE_SQL.REGISTER_CONTEXT( ) RETURN INTEGER; |
DBE_SQL.SQL_UNREGISTER_CONTEXT
该函数用来关闭一个游标,是dbe_sql各项操作的结束。如果在存储过程结束时没有调用该函数,则该游标占用的内存仍然会保存,因此关闭游标非常重要。由于异常情况的发生会中途退出存储过程,导致游标未能关闭,因此建议存储过程中有异常处理,将该接口包含在内。
DBE_SQL.SQL_UNREGISTER_CONTEXT函数原型为:
1 2 3 4 |
DBE_SQL.SQL_UNREGISTER_CONTEXT( context_id IN INTEGER ) RETURN INTEGER; |
参数名称 |
描述 |
---|---|
context_id |
打算关闭的游标ID号。 |
DBE_SQL.SQL_SET_SQL
该函数用来解析给定游标的SQL语句或匿名块。目前语句参数仅可通过text类型传递,长度不大于1GB。
DBE_SQL.SQL_SET_SQL函数的原型为:
1 2 3 4 5 6 |
DBE_SQL.SQL_SET_SQL( context_id IN INTEGER, query_string IN TEXT, language_flag IN INTEGER ) RETURN BOOLEAN; |
参数名称 |
描述 |
---|---|
context_id |
执行查询语句解析的游标ID。 |
query_string |
执行的查询语句。 |
language_flag |
版本语言号,指定SQL语句不同版本的行为,1为非兼容版本,2为兼容ORA版本。 |
DBE_SQL.SQL_RUN
该函数用来执行一个给定的游标。该函数接收一个游标ID,执行游标中的SQL语句或匿名块。
DBE_SQL.SQL_RUN函数的原型为:
1 2 3 4 |
DBE_SQL.SQL_RUN( context_id IN INTEGER, ) RETURN INTEGER; |
参数名称 |
描述 |
---|---|
context_id |
执行查询语句解析的游标ID. |
DBE_SQL.NEXT_ROW
该函数返回符合查询条件的数据行数,每一次运行该接口都会获取到新的行数的集合,直到数据读取完毕获取不到新行为止。
DBE_SQL.NEXT_ROW函数的原型为:
1 2 3 4 |
DBE_SQL.NEXT_ROW( context_id IN INTEGER, ) RETURN INTEGER; |
参数名称 |
描述 |
---|---|
context_id |
执行的游标ID. |
DBE_SQL.SET_RESULT_TYPE
该函数用来定义从给定游标返回的列,该接口只能应用于SELECT定义的游标中。定义的列通过查询列表的相对位置来标识,传入变量的数据类型决定了该列被定义的类型。
DBE_SQL.SET_RESULT_TYPE函数的原型为:
1 2 3 4 5 6 7 |
DBE_SQL.SET_RESULT_TYPE( context_id IN INTEGER, pos IN INTEGER, column_ref IN ANYELEMENT, maxsize IN INTEGER default 1024 ) RETURN INTEGER; |
参数名称 |
描述 |
---|---|
context_id |
执行的游标ID。 |
pos |
查询列在返回结果中的相对位置,起始为1。 |
column_ref |
任意类型的变量,可根据变量类型选择适当的接口动态定义列。 |
maxsize |
定义列返回类型长度。 |
DBE_SQL.SET_RESULT_TYPE_CHAR
该函数用来定义从给定游标返回的CHAR类型的列,该接口只能应用于SELECT定义的游标中。定义的列通过查询列表的相对位置来标识,传入变量的数据类型决定了该列被定义的类型。
DBE_SQL.SET_RESULT_TYPE_CHAR函数的原型为:
1 2 3 4 5 6 7 |
DBE_SQL.SET_RESULT_TYPE_CHAR( context_id IN INTEGER, pos IN INTEGER, column_ref IN TEXT, column_size IN INTEGER ) RETURN INTEGER; |
参数名称 |
描述 |
---|---|
context_id |
执行的游标ID。 |
pos |
动态定义列在查询中的位置。 |
column_ref |
需要定义的某类型的参数变量。 |
column_size |
动态定义列长度。 |
DBE_SQL.SET_RESULT_TYPE_INT
该函数用来定义从给定游标返回的INT类型的列,该接口只能应用于SELECT定义的游标中。定义的列通过查询列表的相对位置来标识,传入变量的数据类型决定了该列被定义的类型。
DBE_SQL.SET_RESULT_TYPE_INT函数的原型为:
1 2 3 4 5 |
DBE_SQL.SET_RESULT_TYPE_INT( context_id IN INTEGER, pos IN INTEGER ) RETURN INTEGER; |
参数名称 |
描述 |
---|---|
context_id |
执行的游标ID。 |
pos |
动态定义列在查询中的位置。 |
DBE_SQL.SET_RESULT_TYPE_LONG
该函数用来定义从给定游标返回的长列类型(非数据类型long)的列,该接口只能应用于SELECT定义的游标中。定义的列通过查询列表的相对位置来标识,传入变量的数据类型决定了该列被定义的类型。长列的大小限制为1G。
DBE_SQL.SET_RESULT_TYPE_LONG函数的原型为:
1 2 3 4 5 |
DBE_SQL.SET_RESULT_TYPE_LONG( context_id IN INTEGER, pos IN INTEGER ) RETURN INTEGER; |
参数名称 |
描述 |
---|---|
context_id |
执行的游标ID |
pos |
动态定义列在查询中的位置 |
DBE_SQL.SET_RESULT_TYPE_RAW
该函数用来定义从给定游标返回的RAW类型的列,该接口只能应用于SELECT定义的游标中。定义的列通过查询列表的相对位置来标识,传入变量的数据类型决定了该列被定义的类型。
DBE_SQL.SET_RESULT_TYPE_RAW函数的原型为:
1 2 3 4 5 6 7 |
DBE_SQL.SET_RESULT_TYPE_RAW( context_id IN INTEGER, pos IN INTEGER, column_ref IN RAW, column_size IN INTEGER ) RETURN INTEGER; |
参数名称 |
描述 |
---|---|
context_id |
执行的游标ID。 |
pos |
动态定义列在查询中的位置。 |
column_ref |
RAW类型的参数变量。 |
column_size |
列的长度。 |
DBE_SQL.SET_RESULT_TYPE_TEXT
该函数用来定义从给定游标返回的TEXT类型的列,该接口只能应用于SELECT定义的游标中。定义的列通过查询列表的相对位置来标识,传入变量的数据类型决定了该列被定义的类型。
DBE_SQL.SET_RESULT_TYPE_TEXT函数的原型为:
1 2 3 4 5 6 |
DBE_SQL.DEFINE_COLUMN_CHAR( context_id IN INTEGER, pos IN INTEGER, maxsize IN INTEGER ) RETURN INTEGER; |
参数名称 |
描述 |
---|---|
context_id |
执行的游标ID。 |
pos |
动态定义列在查询中的位置。 |
maxsize |
定义的TEXT类型的最大长度。 |
DBE_SQL.SET_RESULT_TYPE_UNKNOWN
该函数用来处理从给定游标返回的未知数据类型的列,该接口仅用于类型不识别时的报错退出。
DBE_SQL.SET_RESULT_TYPE_UNKNOWN函数的原型为:
1 2 3 4 5 6 |
DBE_SQL.SET_RESULT_TYPE_UNKNOWN( context_id IN INTEGER, pos IN INTEGER, col_type IN TEXT ) RETURN INTEGER; |
参数名称 |
描述 |
---|---|
context_id |
执行的游标ID。 |
posn |
动态定义列在查询中的位置。 |
col_type |
动态定义的参数。 |
DBE_SQL.GET_RESULT
该函数用来返回给定游标给定位置的游标元素值,该接口访问的是DBE_SQL.NEXT_ROW获取的数据。
DBE_SQL.GET_RESULT函数的原型为:
1 2 3 4 5 6 |
DBE_SQL.GET_RESULT( context_id IN INTEGER, pos IN INTEGER, column_value INOUT ANYELEMENT ) RETURN ANYELEMENT; |
参数名称 |
描述 |
---|---|
context_id |
执行的游标ID。 |
pos |
查询列在返回结果中的相对位置,起始为1。 |
column_value |
定义的列的返回值。 |
DBE_SQL.GET_RESULT_CHAR
该存储过程用来返回给定游标给定位置的游标CHAR类型的值,该接口访问的是DBE_SQL.NEXT_ROW获取的数据。
DBE_SQL.GET_RESULT_CHAR函数的原型为:
1 2 3 4 5 6 7 |
DBE_SQL.GET_RESULT_CHAR( context_id IN INTEGER, pos IN INTEGER, tr INOUT CHARACTER, err INOUT NUMERIC, actual_length INOUT INTEGER ); |
参数名称 |
描述 |
---|---|
context_id |
执行的游标ID。 |
pos |
动态定义列在查询中的位置。 |
tr |
返回值。 |
err |
错误号。传出参数,须传入变量做参数。目前未实现,固定传出-1。 |
actual_length |
返回值的实际长度。 |
DBE_SQL.GET_RESULT_CHAR函数的重载函数为:
1 2 3 4 5 |
DBE_SQL.GET_RESULT_CHAR( context_id IN INTEGER, pos IN INTEGER, tr INOUT CHARACTER ); |
参数名称 |
描述 |
---|---|
context_id |
执行的游标ID。 |
pos |
动态定义列在查询中的位置。 |
tr |
返回值。 |
DBE_SQL.GET_RESULT_INT
该函数用来返回给定游标给定位置的游标INT类型的值,该接口访问的是DBE_SQL.NEXT_ROW获取的数据。DBE_SQL.GET_RESULT_INT函数的原型为:
1 2 3 4 5 |
DBE_SQL.GET_RESULT_INT( context_id IN INTEGER, pos IN INTEGER ) RETURN INTEGER; |
参数名称 |
描述 |
---|---|
context_id |
执行的游标ID。 |
pos |
动态定义列在查询中的位置。 |
DBE_SQL.GET_RESULT_LONG
该函数用来返回给定游标给定位置的游标长列(非long/bigint整型)类型的值,该接口访问的是DBE_SQL.NEXT_ROW获取的数据。
DBE_SQL.GET_RESULT_LONG函数的原型为:
1 2 3 4 5 6 7 8 9 |
DBE_SQL.GET_RESULT_LONG( context_id IN INTEGER, pos IN INTEGER, lgth IN INTEGER, off_set IN INTEGER, vl INOUT TEXT, vl_length INOUT INTEGER ) RETURN RECORD; |
参数名称 |
描述 |
---|---|
context_id |
执行的游标ID。 |
pos |
动态定义列在查询中的位置。 |
lgth |
返回值的长度。 |
off_set |
返回值的起始位置。 |
vl |
返回值。 |
vl_length |
实际返回值的长度。 |
DBE_SQL.GET_RESULT_RAW
该存储过程用来返回给定游标给定位置的游标RAW类型的值,该接口访问的是DBE_SQL.NEXT_ROW获取的数据。
DBE_SQL.GET_RESULT_RAW存储过程的原型为:
1 2 3 4 5 6 7 |
DBE_SQL.GET_RESULT_RAW( context_id IN INTEGER, pos IN INTEGER, tr INOUT RAW, err INOUT NUMERIC, actual_length INOUT INTEGER ); |
参数名称 |
描述 |
---|---|
context_id |
执行的游标ID |
pos |
动态定义列在查询中的位置 |
tr |
返回的列值 |
err |
错误号。传出参数,须传入变量做参数。目前未实现,固定传出-1。 |
actual_length |
返回值的实际长度,不能长于此值,否则截断。 |
DBE_SQL.GET_RESULT_RAW函数的重载函数为:
1 2 3 4 5 |
DBE_SQL.GET_RESULT_RAW( context_id IN INTEGER, pos IN INTEGER, tr INOUT RAW ); |
参数名称 |
描述 |
---|---|
context_id |
执行的游标ID |
pos |
动态定义列在查询中的位置 |
tr |
返回的列值 |
DBE_SQL.GET_RESULT_TEXT
该函数用来返回给定游标给定位置的游标TEXT类型的值,该接口访问的是DBE_SQL.NEXT_ROW获取的数据。
DBE_SQL.GET_RESULT_TEXT函数的原型为:
1 2 3 4 5 |
DBE_SQL.GET_RESULT_TEXT( context_id IN INTEGER, pos IN INTEGER ) RETURN TEXT; |
参数名称 |
描述 |
---|---|
context_id |
执行的游标ID |
pos |
动态定义列在查询中的位置 |
DBE_SQL.GET_RESULT_UNKNOWN
该函数用来返回给定游标给定位置的游标未知类型的值,该接口为类型不支持时的报错处理接口。
DBE_SQL.GET_RESULT_UNKNOWN函数的原型为:
1 2 3 4 5 6 |
DBE_SQL.GET_RESULT_UNKNOWN( context_id IN INTEGER, pos IN INTEGER, col_type IN TEXT ) RETURN TEXT; |
参数名称 |
描述 |
---|---|
context_id |
执行的游标ID。 |
pos |
动态定义列在查询中的位置。 |
col_type |
返回的参数类型。 |
DBE_SQL.DBE_SQL_GET_RESULT_CHAR
该函数用来返回给定游标给定位置的游标CHAR类型的值,该接口访问的是DBE_SQL.NEXT_ROW获取的数据。和DBE_SQL.GET_RESULT_CHAR的区别是,不设置返回值长度,返回整个字符串。
DBE_SQL.DBE_SQL_GET_RESULT_CHAR函数的原型为:
1 2 3 4 5 |
DBE_SQL.DBE_SQL_GET_RESULT_CHAR( context_id IN INTEGER, pos IN INTEGER ) RETURN CHARACTER; |
参数名称 |
描述 |
---|---|
context_id |
执行的游标ID |
pos |
动态定义列在查询中的位置 |
DBE_SQL.DBE_SQL_GET_RESULT_LONG
该函数用来返回给定游标给定位置的游标长列(非long/bigint整型)类型的值,该接口访问的是DBE_SQL.NEXT_ROW获取的数据。
和DBE_SQL.GET_RESULT_LONG的区别是,不设置返回值长度,返回整个BIGINT值。
DBE_SQL.DBE_SQL_GET_RESULT_LONG函数的原型为:
1 2 3 4 5 |
DBE_SQL.DBE_SQL_GET_RESULT_LONG( context_id IN INTEGER, pos IN INTEGER ) RETURN BIGINT; |
参数名称 |
描述 |
---|---|
context_id |
执行的游标ID |
pos |
动态定义列在查询中的位置 |
DBE_SQL.DBE_SQL_GET_RESULT_RAW
该函数用来返回给定游标给定位置的游标RAW类型的值,该接口访问的是DBE_SQL.NEXT_ROW获取的数据。
和函数DBE_SQL.GET_RESULT_RAW的区别是,不设置返回值长度,返回整个字符串。
DBE_SQL.DBE_SQL_GET_RESULT_RAW函数的原型为:
1 2 3 4 5 6 |
DBE_SQL.GET_RESULT_RAW( context_id IN INTEGER, pos IN INTEGER, tr INOUT RAW ) RETURN RAW; |
参数名称 |
描述 |
---|---|
context_id |
执行的游标ID |
pos |
动态定义列在查询中的位置 |
DBE_SQL.IS_ACTIVE
该函数用来返回游标的当前状态:打开、解析、执行、定义。取值是为TRUE,关闭后为FALSE,未知时报错,其余默认为关闭。
DBE_SQL.IS_ACTIVE函数的原型为:
1 2 3 4 |
DBE_SQL.IS_ACTIVE( context_id IN INTEGER ) RETURN BOOLEAN; |
参数名称 |
描述 |
---|---|
context_id |
被查询的游标ID。 |
DBE_SQL.LAST_ROW_COUNT
该函数用来返回最近一次NEXT_ROW执行后,获取的数据行数的累积计数。
DBE_SQL.LAST_ROW_COUNT函数的原型为:
1 2 3 |
DBE_SQL.LAST_ROW_COUNT( ) RETURN INTEGER; |
DBE_SQL.RUN_AND_NEXT
该函数的功能等同于在调用SQL_RUN后接着调用NEXT_ROW。
DBE_SQL.RUN_AND_NEXT函数的原型为:
1 2 3 4 |
DBE_SQL.RUN_AND_NEXT( context_id IN INTEGER ) RETURNS INTEGER; |
参数名称 |
描述 |
---|---|
context_id |
执行查询语句解析的游标ID。 |
DBE_SQL.SQL_BIND_VARIABLE
该函数用来绑定一个参数到SQL语句,当执行SQL语句时,会根据该绑定的值来执行。
DBE_SQL.SQL_BIND_VARIABLE函数的原型为:
1 2 3 4 5 6 7 |
DBE_SQL.SQL_BIND_VARIABLE( context_id IN int, query_string IN text, value IN anyelement, out_value_size IN int default null ) RETURNS void; |
参数名称 |
描述 |
---|---|
context_id |
被查询的游标ID。 |
query_string |
绑定的变量名。 |
value |
绑定的值。 |
out_value_size |
返回值的大小,默认值为null。 |
DBE_SQL.SQL_BIND_ARRAY
该函数用来绑定一组参数到SQL语句,当执行SQL语句时,会根据该绑定的数组来执行。
DBE_SQL.SQL_BIND_ARRAY函数的原型为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
DBE_SQL.SQL_BIND_ARRAY( context_id IN int, query_string IN text, value IN anyarray ) RETURNS void; DBE_SQL.SQL_BIND_ARRAY( context_id IN int, query_string IN text, value IN anyarray, lower_index IN int, higher_index IN int ) RETURNS void; |
参数名称 |
描述 |
---|---|
context_id |
被查询的游标ID。 |
query_string |
绑定的变量名。 |
value |
绑定的数组。 |
lower_index |
绑定数组的最小下标。 |
higher_index |
绑定数组的最大下标。 |
DBE_SQL.SET_RESULT_TYPE_INTS
该函数用来定义从给定游标返回的INT数组类型的列,该接口只能应用于SELECT定义的游标中。定义的列通过查询列表的相对位置来标识,传入变量的数据类型决定了该列被定义的类型。
DBE_SQL.SET_RESULT_TYPE_INTS函数的原型为:
1 2 3 4 5 6 7 8 |
DBE_SQL.SET_RESULT_TYPE_INTS( context_id IN int, pos IN int, column_ref IN anyarray, cnt IN int, lower_bnd IN int ) RETURNS integer; |
参数名称 |
描述 |
---|---|
context_id |
被查询的游标ID。 |
pos |
动态定义列在查询中的位置。 |
column_ref |
标记返回的数组类型。 |
cnt |
标记一次获取多少个值。 |
lower_bnd |
标记返回数组时的开始下标。 |
DBE_SQL.SET_RESULT_TYPE_TEXTS
该函数用来定义从给定游标返回的TEXT数组类型的列,该接口只能应用于SELECT定义的游标中。定义的列通过查询列表的相对位置来标识,传入变量的数据类型决定了该列被定义的类型。
DBE_SQL.SET_RESULT_TYPE_TEXTS函数的原型为:
1 2 3 4 5 6 7 8 9 |
DBE_SQL.SET_RESULT_TYPE_TEXTS( context_id IN int, pos IN int, column_ref IN anyarray, cnt IN int, lower_bnd IN int, maxsize IN int ) RETURNS integer; |
参数名称 |
描述 |
---|---|
context_id |
被查询的游标ID。 |
pos |
动态定义列在查询中的位置。 |
column_ref |
标记返回的数组类型。 |
cnt |
标记一次获取多少个值。 |
lower_bnd |
标记返回数组时的开始下标。 |
maxsize |
定义的TEXT类型的最大长度。 |
DBE_SQL.SET_RESULT_TYPE_RAWS
该函数用来定义从给定游标返回的RAW数组类型的列,该接口只能应用于SELECT定义的游标中。定义的列通过查询列表的相对位置来标识,传入变量的数据类型决定了该列被定义的类型。
DBE_SQL.SET_RESULT_TYPE_RAWS函数的原型为:
1 2 3 4 5 6 7 8 9 |
DBE_SQL.set_result_type_raws( context_id IN int, pos IN int, column_ref IN anyarray, cnt IN int, lower_bnd IN int, column_size IN int ) RETURNS integer; |
参数名称 |
描述 |
---|---|
context_id |
被查询的游标ID。 |
pos |
动态定义列在查询中的位置。 |
column_ref |
标记返回的数组类型。 |
cnt |
标记一次获取多少个值。 |
lower_bnd |
标记返回数组时的开始下标。 |
column_size |
列的长度。 |
DBE_SQL.SET_RESULT_TYPE_BYTEAS
该函数用来定义从给定游标返回的BYTEA数组类型的列,该接口只能应用于SELECT定义的游标中。定义的列通过查询列表的相对位置来标识,传入变量的数据类型决定了该列被定义的类型。
DBE_SQL.SET_RESULT_TYPE_BYTEAS函数的原型为:
1 2 3 4 5 6 7 8 9 |
DBE_SQL.set_result_type_byteas( context_id IN int, pos IN int, column_ref IN anyarray, cnt IN int, lower_bnd IN int, column_size IN int ) RETURNS integer; |
参数名称 |
描述 |
---|---|
context_id |
被查询的游标ID。 |
pos |
动态定义列在查询中的位置。 |
column_ref |
标记返回的数组类型。 |
cnt |
标记一次获取多少个值。 |
lower_bnd |
标记返回数组时的开始下标。 |
column_size |
列的长度。 |
DBE_SQL.SET_RESULT_TYPE_CHARS
该函数用来定义从给定游标返回的CHAR数组类型的列,该接口只能应用于SELECT定义的游标中。定义的列通过查询列表的相对位置来标识,传入变量的数据类型决定了该列被定义的类型。
DBE_SQL.SET_RESULT_TYPE_CHARS函数的原型为:
1 2 3 4 5 6 7 8 9 |
DBE_SQL.SET_RESULT_TYPE_CHARS( context_id IN int, pos IN int, column_ref IN anyarray, cnt IN int, lower_bnd IN int, column_size IN int ) RETURNS integer; |
参数名称 |
描述 |
---|---|
context_id |
被查询的游标ID。 |
pos |
动态定义列在查询中的位置。 |
column_ref |
标记返回的数组类型。 |
cnt |
标记一次获取多少个值。 |
lower_bnd |
标记返回数组时的开始下标。 |
column_size |
列的长度。 |
DBE_SQL.SET_RESULTS_TYPE
该函数用来定义从给定游标返回的列,该接口只能应用于SELECT定义的游标中。定义的列通过查询列表的相对位置来标识,传入变量的数据类型决定了该列被定义的类型。
DBE_SQL.SET_RESULTS_TYPE函数的原型为:
1 2 3 4 5 6 7 8 |
DBE_SQL.SET_RESULTS_TYPE( context_id IN int, pos IN int, column_ref IN anyarray, cnt IN int, lower_bnd IN int, maxsize IN int DEFAULT 1024 ) returns void; |
参数名称 |
描述 |
---|---|
context_id |
被查询的游标ID。 |
pos |
动态定义列在查询中的位置。 |
column_ref |
标记返回的数组类型。 |
cnt |
标记一次获取多少个值。 |
lower_bnd |
标记返回数组时的开始下标。 |
maxsize |
定义的类型的最大长度。 |
DBE_SQL.GET_RESULTS_INT
该函数用来返回给定游标给定位置的游标INT数组类型的值,该接口访问的是DBE_SQL.NEXT_ROW获取的数据。
DBE_SQL.GET_RESULTS_INT函数的原型为:
1 2 3 4 5 |
DBE_SQL.GET_RESULTS_INT( context_id IN int, pos IN int, column_value INOUT anyarray ); |
参数名称 |
描述 |
---|---|
context_id |
被查询的游标ID。 |
pos |
动态定义列在查询中的位置。 |
column_value |
返回值。 |
DBE_SQL.GET_RESULTS_TEXT
该函数用来返回给定游标给定位置的游标TEXT数组类型的值,该接口访问的是DBE_SQL.NEXT_ROW获取的数据。
DBE_SQL.GET_RESULTS_TEXT函数的原型为:
1 2 3 4 5 |
DBE_SQL.GET_RESULTS_TEXT( context_id IN int, pos IN int, column_value INOUT anyarray ); |
参数名称 |
描述 |
---|---|
context_id |
被查询的游标ID。 |
pos |
动态定义列在查询中的位置。 |
column_value |
返回值。 |
DBE_SQL.GET_RESULTS_RAW
该函数用来返回给定游标给定位置的游标RAW数组类型的值,该接口访问的是DBE_SQL.NEXT_ROW获取的数据。
DBE_SQL.GET_RESULTS_RAW函数的原型为:
1 2 3 4 5 |
DBE_SQL.GET_RESULTS_RAW( context_id IN int, pos IN int, column_value INOUT anyarray ); |
参数名称 |
描述 |
---|---|
context_id |
被查询的游标ID。 |
pos |
动态定义列在查询中的位置。 |
column_value |
返回值。 |
DBE_SQL.GET_RESULTS_BYTEA
该函数用来返回给定游标给定位置的游标BYTEA数组类型的值,该接口访问的是DBE_SQL.NEXT_ROW获取的数据。
DBE_SQL.GET_RESULTS_BYTEA函数的原型为:
1 2 3 4 5 |
DBE_SQL.GET_RESULTS_BYTEA( context_id IN int, pos IN int, column_value INOUT anyarray ); |
参数名称 |
描述 |
---|---|
context_id |
被查询的游标ID。 |
pos |
动态定义列在查询中的位置。 |
column_value |
返回值。 |
DBE_SQL.GET_RESULTS_CHAR
该函数用来返回给定游标给定位置的游标CHAR数组类型的值,该接口访问的是DBE_SQL.NEXT_ROW获取的数据。
DBE_SQL.GET_RESULTS_CHAR函数的原型为:
1 2 3 4 5 |
DBE_SQL.GET_RESULTS_CHAR( context_id IN int, pos IN int, column_value INOUT anyarray ); |
参数名称 |
描述 |
---|---|
context_id |
被查询的游标ID。 |
pos |
动态定义列在查询中的位置。 |
column_value |
返回值。 |
DBE_SQL.GET_RESULTS
该函数用来返回给定游标给定位置的游标数组类型的值,该接口访问的是DBE_SQL.NEXT_ROW获取的数据。
由于DBE_SQL.GET_RESULTS底层机制通过数组实现,当用不同的数组获取同一列的返回值时,会由于内部索引的不连续向数组中填充NULL值来确保数组本身索引的连续性,这会导致返回结果数组的长度和Oracle的不一致。
DBE_SQL.GET_RESULTS函数的原型为:
1 2 3 4 5 |
DBE_SQL.GET_RESULTS( context_id IN int, pos IN int, column_value INOUT anyarray ); |
参数名称 |
描述 |
---|---|
context_id |
被查询的游标ID。 |
pos |
动态定义列在查询中的位置。 |
column_value |
返回值。 |
DBE_SQL.SQL_DESCRIBE_COLUMNS
该函数用来描述列信息,该接口只能应用于SELECT定义的游标中。
DBE_SQL.SQL_DESCRIBE_COLUMNS函数的原型为:
1 2 3 4 5 |
DBE_SQL.SQL_DESCRIBE_COLUMNS( context_id IN int, col_cnt INOUT int, desc_t INOUT dbe_sql.desc_tab )RETURNS record; |
参数名称 |
描述 |
---|---|
context_id |
被查询的游标ID。 |
col_cnt |
返回的列的数量。 |
desc_t |
返回的列的描述信息。 |
DBE_SQL.DESCRIBE_COLUMNS
该函数用来描述列信息,该接口为兼容接口,只能应用于SELECT定义的游标中。
DBE_SQL.DESCRIBE_COLUMNS函数的原型为:
1 2 3 4 5 |
DBE_SQL.DESCRIBE_COLUMNS( context_id IN int, col_cnt OUT int, desc_t OUT dbe_sql.desc_tab ) |
参数名称 |
描述 |
---|---|
context_id |
被查询的游标ID。 |
col_cnt |
返回的列的数量。 |
desc_t |
返回的列的描述信息。 |
DBE_SQL.BIND_VARIABLE
该函数是绑定参数接口,建议使用DBE_SQL.SQL_BIND_VARIABLE。
DBE_SQL.SQL_SET_RESULTS_TYPE_C
该函数是动态定义一个数组类型的列,不建议用户使用。
DBE_SQL.SQL_SET_RESULTS_TYPE_C函数的原型为:
1 2 3 4 5 6 7 8 9 |
DBE_SQL.sql_set_results_type_c( context_id IN int, pos IN int, column_ref IN anyarray, cnt IN int, lower_bnd IN int, col_type IN anyelement, maxsize IN int )return integer; |
参数名称 |
描述 |
---|---|
context_id |
被查询的游标ID。 |
pos |
动态定义列在查询中的位置。 |
column_ref |
标记返回的数组类型。 |
cnt |
标记一次获取多少个值。 |
lower_bnd |
标记返回数组时的开始下标。 |
col_type |
标记返回的数组类型对应的变量类型。 |
maxsize |
定义的类型的最大长度。 |
DBE_SQL.SQL_GET_VALUES_C
该函数是读取一个已动态定义的列值,不建议用户使用。
DBE_SQL.SQL_GET_VALUES_C函数的原型为:
1 2 3 4 5 6 |
DBE_SQL.sql_get_values_c( context_id IN int, pos IN int, results_type INOUT anyarray, result_type IN anyelement )return anyarray; |
参数名称 |
描述 |
---|---|
context_id |
被查询的游标ID。 |
pos |
参数位置信息。 |
results_type |
获取的结果。 |
result_type |
获取的结果类型。 |
DBE_SQL.GET_VARIABLE_RESULT
该函数用来返回绑定的OUT参数的值,可以用来获取存储过程中的OUT参数。
DBE_SQL.GET_VARIABLE_RESULT函数的原型为:
1 2 3 4 5 |
DBE_SQL.get_variable_result( context_id IN int, pos IN VARCHAR2, column_value INOUT anyelement ); |
参数名称 |
描述 |
---|---|
context_id |
被查询的游标ID。 |
pos |
绑定的参数名。 |
column_value |
返回值。 |
DBE_SQL.GET_VARIABLE_RESULT_CHAR
该函数用来返回绑定的CHAR类型的OUT参数的值,可以用来获取存储过程中的OUT参数。
DBE_SQL.GET_VARIABLE_RESULT_CHAR函数的原型为:
1 2 3 4 5 |
DBE_SQL.get_variable_result_char( context_id IN int, pos IN VARCHAR2 ) RETURNS char |
参数名称 |
描述 |
---|---|
context_id |
被查询的游标ID。 |
pos |
绑定的参数名。 |
DBE_SQL.GET_VARIABLE_RESULT_RAW
该函数用来返回绑定的RAW类型的OUT参数的值,可以用来获取存储过程中的OUT参数。
DBE_SQL.GET_VARIABLE_RESULT_RAW函数的原型为:
1 2 3 4 5 6 |
CREATE OR REPLACE FUNCTION DBE_SQL.get_variable_result_raw( context_id IN int, pos IN VARCHAR2, value INOUT anyelement ) RETURNS anyelement |
参数名称 |
描述 |
---|---|
context_id |
被查询的游标ID。 |
pos |
绑定的参数名。 |
value |
返回值。 |
DBE_SQL.GET_VARIABLE_RESULT_TEXT
该函数用来返回绑定的TEXT类型的OUT参数的值,可以用来获取存储过程中的OUT参数。
DBE_SQL.GET_VARIABLE_RESULT_TEXT函数的原型为:
1 2 3 4 5 |
CREATE OR REPLACE FUNCTION DBE_SQL.get_variable_result_text( context_id IN int, pos IN VARCHAR2 ) RETURNS text |
参数名称 |
描述 |
---|---|
context_id |
被查询的游标ID。 |
pos |
绑定的参数名。 |
DBE_SQL.GET_VARIABLE_RESULT_INT
该函数用来返回绑定的INT类型的OUT参数的值,可以用来获取存储过程中的OUT参数。
DBE_SQL.GET_VARIABLE_RESULT_INT函数的原型为:
1 2 3 4 5 6 |
DBE_SQL.get_variable_result_int( context_id IN int, pos IN VARCHAR2, value INOUT anyelement ) RETURNS anyelement |
参数名称 |
描述 |
---|---|
context_id |
被查询的游标ID。 |
pos |
绑定的参数名。 |
value |
返回值。 |
DBE_SQL.GET_ARRAY_RESULT_TEXT
该函数用来返回绑定的TEXT数组类型的OUT参数的值,可以用来获取存储过程中的OUT参数。
DBE_SQL.GET_ARRAY_RESULT_TEXT函数的原型为:
1 2 3 4 5 |
DBE_SQL.get_array_result_text( context_id IN int, pos IN VARCHAR2, column_value INOUT anyarray ) |
参数名称 |
描述 |
---|---|
context_id |
被查询的游标ID。 |
pos |
绑定的参数名。 |
column_value |
返回值。 |
DBE_SQL.GET_ARRAY_RESULT_RAW
该函数用来返回绑定的RAW数组类型的OUT参数的值,可以用来获取存储过程中的OUT参数。
DBE_SQL.GET_ARRAY_RESULT_RAW函数的原型为:
1 2 3 4 5 |
DBE_SQL.get_array_result_raw( context_id IN int, pos IN VARCHAR2, column_value INOUT anyarray ) |
参数名称 |
描述 |
---|---|
context_id |
被查询的游标ID。 |
pos |
绑定的参数名。 |
column_value |
返回值。 |
DBE_SQL.GET_ARRAY_RESULT_CHAR
该函数用来返回绑定的CHAR数组类型的OUT参数的值,可以用来获取存储过程中的OUT参数。
DBE_SQL.GET_ARRAY_RESULT_CHAR函数的原型为:
1 2 3 4 5 |
DBE_SQL.get_array_result_char( context_id IN int, pos IN VARCHAR2, column_value INOUT anyarray ) |
参数名称 |
描述 |
---|---|
context_id |
被查询的游标ID。 |
pos |
绑定的参数名。 |
column_value |
返回值。 |
DBE_SQL.GET_ARRAY_RESULT_INT
该函数用来返回绑定的INT数组类型的OUT参数的值,可以用来获取存储过程中的OUT参数。
DBE_SQL.GET_ARRAY_RESULT_INT函数的原型为:
1 2 3 4 5 |
DBE_SQL.get_array_result_int( context_id IN int, pos IN VARCHAR2, column_value INOUT anyarray ) |
参数名称 |
描述 |
---|---|
context_id |
被查询的游标ID。 |
pos |
绑定的参数名。 |
column_value |
返回值。 |
示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
-- 示例1 -- 创建表并插入数据 CREATE TABLE test_desc_cols( id NUMBER, name VARCHAR2(50) ); INSERT INTO test_desc_cols(id, name) VALUES (1, 'xiaoming'); INSERT INTO test_desc_cols(id, name) VALUES (2, 'xiaohong'); INSERT INTO test_desc_cols(id, name) VALUES (3, 'xiaolan'); DECLARE context_id INTEGER; col_cnt INTEGER; v_id int; v_name varchar2; execute_ret INTEGER; BEGIN -- 打开游标 context_id := DBE_SQL.REGISTER_CONTEXT(); -- 编译游标 DBE_SQL.SQL_SET_SQL(context_id, 'SELECT * FROM test_desc_cols', 2); -- 设置列返回值的类型 DBE_SQL.SET_RESULT_TYPE(context_id, 1, v_id); DBE_SQL.SET_RESULT_TYPE(context_id, 2, v_name); execute_ret := DBE_SQL.SQL_RUN(context_id); loop exit when (DBE_SQL.NEXT_ROW(context_id) <= 0); --获取值 DBE_SQL.GET_RESULT(context_id, 1, v_id); DBE_SQL.GET_RESULT(context_id, 2, v_name); --输出结果 dbe_output.print_line('id:'|| v_id || ' name:' || v_name); end loop; DBE_SQL.SQL_UNREGISTER_CONTEXT(context_id); END; / CREATE OR REPLACE PROCEDURE test_square(n NUMBER, square OUT NUMBER) IS BEGIN square := n * n; END; / DECLARE cur NUMBER; query varchar(2000); ret integer; n NUMBER; square Integer; BEGIN n := 2; cur := DBE_SQL.REGISTER_CONTEXT(); query := 'BEGIN test_square(:n_bnd, :square_bnd); END;'; DBE_SQL.SQL_SET_SQL(cur, query, 2); DBE_SQL.SQL_BIND_VARIABLE(cur, 'n_bnd', n); DBE_SQL.SQL_BIND_VARIABLE(cur, 'square_bnd', square); ret := DBE_SQL.SQL_RUN(cur); DBE_SQL.GET_VARIABLE_RESULT(cur, 'square_bnd', square); DBE_OUTPUT.PRINT_LINE('square = ' || square); DBE_SQL.SQL_UNREGISTER_CONTEXT(cur); END; / -- 示例2 -- DESCRIBE_COLUMNS、RUN_AND_NEXT和LAST_ROW_COUNT接口示例 -- 创建列描述信息打印存储过程 CREATE OR REPLACE PROCEDURE print_rec( rec in DBE_SQL.DESC_REC )package AS BEGIN raise INFO 'col_type = %', rec.col_type; raise INFO 'col_name = %', rec.col_name; raise INFO 'col_name_len = %', rec.col_name_len; END; / -- 进行功能验证 DECLARE context_id INTEGER; col_cnt INTEGER; rec_tab DBE_SQL.DESC_TAB; excute_ret INTEGER; nextrow_ret INTEGER; last_row_count INTEGER; BEGIN -- 打开游标 context_id := DBE_SQL.REGISTER_CONTEXT(); -- 编译游标 DBE_SQL.SQL_SET_SQL(context_id, 'SELECT * FROM test_desc_cols', 2); -- 进行列描述和信息打印 DBE_SQL.DESCRIBE_COLUMNS(context_id, col_cnt, rec_tab); FOR var IN 1..col_cnt LOOP print_rec(rec_tab(var)); END LOOP; -- 执行并获取一行数据 excute_ret := DBE_SQL.RUN_AND_NEXT(context_id); -- 获取一行数据 nextrow_ret := DBE_SQL.NEXT_ROW(context_id); -- 得到目前已经获取的数据行数 last_row_count := DBE_SQL.LAST_ROW_COUNT; DBE_OUTPUT.PRINT_LINE('last_row_count = '|| last_row_count); DBE_SQL.SQL_UNREGISTER_CONTEXT(context_id); END; / |
父主题: 二次封装接口(推荐)
同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家