
# DBE_SQL
#### 接口介绍
高级功能包DBE_SQL支持的接口请参见[表1]。
 表1DBE_SQL 
| 接口名称                                                                                                            | 描述                            |
|:---|:---|
| [DBE_SQL.REGISTER_CONTEXT]         | 打开一个游标。                       |
| [DBE_SQL.SQL_UNREGISTER_CONTEXT]    | 关闭一个已打开的游标。                   |
| [DBE_SQL.SQL_SET_SQL]              | 向游标传递一组SQL语句。                 |
| [DBE_SQL.SQL_RUN]                    | 在游标上执行一组动态定义操作。               |
| [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_BYTEA]   | 动态定义一个bytea类型的列。              |
| [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_BYTEA]         | 读取一个已动态定义的列值（指定bytea类型）。      |
| [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.SQL_DESCRIBE_COLUMNS]       | 描述游标读取的列信息。                   |
| [DBE_SQL.DESC_REC]                  | 存储游标读取的列信息的类型。                |
| [DBE_SQL.DESC_TAB]                | DESC_REC的TABLE类型。             |
| [DBE_SQL.DATE_TABLE]                  | DATE的TABLE类型。                 |
| [DBE_SQL.NUMBER_TABLE]            | NUMBER的TABLE类型。               |
| [DBE_SQL.VARCHAR2_TABLE]          | VARCHAR2的TABLE类型。             |
| [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数组类型）。  |
   
![](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
- 建议使用dbe_sql.set_result_type及dbe_sql.get_result定义参数列。
- 当结果集大于work_mem设定值时会触发结果集临时下盘，但最大阈值不超过512MB。
 
- DBE_SQL.REGISTER_CONTEXT
  该函数用来打开一个游标，是后续dbe_sql各项操作的前提。该函数不传入任何参数，内部自动递增生成游标ID，并作为返回值返回给integer定义的变量。
  DBE_SQL.REGISTER_CONTEXT函数原型为：
  ```
  DBE_SQL.REGISTER_CONTEXT(
  )
  RETURN INTEGER;
  ```
  
- DBE_SQL.SQL_UNREGISTER_CONTEXT
  该函数用来关闭一个游标，是dbe_sql各项操作的结束。如果在存储过程结束时没有调用该函数，则该游标占用的内存仍然会保存，因此关闭游标非常重要。由于异常情况的发生会中途退出存储过程，导致游标未能关闭，因此建议存储过程中有异常处理，将该接口包含在内。
  DBE_SQL.SQL_UNREGISTER_CONTEXT函数原型为：
  ```
  DBE_SQL.SQL_UNREGISTER_CONTEXT(
  context_id     IN INTEGER
  )
  RETURN INTEGER;
  ```
  表2DBE_SQL.SQL_UNREGISTER_CONTEXT接口说明 
  | 参数名称       | 描述         |
  |:---|:---|
  | context_id | 打算关闭的游标ID号 |
     
  

- DBE_SQL.SQL_SET_SQL
  该函数用来解析给定游标的查询语句。目前语句参数仅可通过text类型传递，长度不大于1G。
  DBE_SQL.SQL_SET_SQL函数的原型为：
  ```
  DBE_SQL.SQL_SET_SQL(
  context_id     IN INTEGER,
  query_string IN TEXT,
  language_flag        IN INTEGER
  )
  RETURN BOOLEAN;
  ```
  表3DBE_SQL.SQL_SET_SQL接口说明 
  | 参数名称          | 描述            |
  |:---|:---|
  | context_id    | 执行查询语句解析的游标ID |
  | query_string  | 执行的查询语句       |
  | language_flag | 版本语言号，目前只支持1  |
     
  
- DBE_SQL.SQL_RUN
  该函数用来执行一个给定的游标。该函数接收一个游标ID，运行后获得的数据用于后续操作。
  DBE_SQL.SQL_RUN函数的原型为：
  ```
  DBE_SQL.SQL_RUN(
  context_id     IN INTEGER,
  )
  RETURN INTEGER;
  ```
  表4DBE_SQL.SQL_RUN接口说明 
  | 参数名称       | 描述            |
  |:---|:---|
  | context_id | 执行查询语句解析的游标ID |
     
  
- DBE_SQL.NEXT_ROW
  该函数返回符合查询条件的数据行数，每一次运行该接口都会获取到新的行数的集合，直到数据读取完毕获取不到新行为止。
  DBE_SQL.NEXT_ROW函数的原型为：
  ```
  DBE_SQL.NEXT_ROW(
  context_id     IN INTEGER,
  )
  RETURN INTEGER;
  ```
  表5DBE_SQL.NEXT_ROW接口说明 
  | 参数名称       | 描述      |
  |:---|:---|
  | context_id | 执行的游标ID |
     
  
- DBE_SQL.SET_RESULT_TYPE
  该函数用来定义从给定游标返回的列，该接口只能应用于SELECT定义的游标中。定义的列通过查询列表的相对位置来标识，传入变量的数据类型决定了该列被定义的类型。
  DBE_SQL.SET_RESULT_TYPE函数的原型为：
  ```
  DBE_SQL.SET_RESULT_TYPE(
  context_id     IN INTEGER,
  pos     IN INTEGER,
  column_ref   IN ANYELEMENT,
  maxsize     IN INTEGER default 1024
  )
  RETURN INTEGER;
  ```
  表6DBE_SQL.SET_RESULT_TYPE接口说明 
  | 参数名称       | 描述                          |
  |:---|:---|
  | context_id | 执行的游标ID                     |
  | pos        | 动态定义列在查询中的位置                |
  | column_ref | 任意类型的变量，可根据变量类型选择适当的接口动态定义列 |
  | maxsize    | 定义的列的长度                     |
     
  
- DBE_SQL.SET_RESULT_TYPE_CHAR
  该函数用来定义从给定游标返回的CHAR类型的列，该接口只能应用于SELECT定义的游标中。定义的列通过查询列表的相对位置来标识，传入变量的数据类型决定了该列被定义的类型。
  DBE_SQL.SET_RESULT_TYPE_CHAR函数的原型为：
  ```
  DBE_SQL.SET_RESULT_TYPE_CHAR(
  context_id     IN INTEGER,
  pos     IN INTEGER,
  column_ref       IN TEXT,
  column_size     IN INTEGER
  )
  RETURN INTEGER;
  ```
  表7DBE_SQL.SET_RESULT_TYPE_CHAR接口说明 
  | 参数名称        | 描述            |
  |:---|:---|
  | context_id  | 执行的游标ID       |
  | pos         | 动态定义列在查询中的位置  |
  | column_ref  | 需要定义的某类型的参数变量 |
  | column_size | 动态定义列长度       |
     
  
- DBE_SQL.SET_RESULT_TYPE_INT
  该函数用来定义从给定游标返回的INT类型的列，该接口只能应用于SELECT定义的游标中。定义的列通过查询列表的相对位置来标识，传入变量的数据类型决定了该列被定义的类型。
  DBE_SQL.SET_RESULT_TYPE_INT函数的原型为：
  ```
  DBE_SQL.SET_RESULT_TYPE_INT(
  context_id     IN INTEGER,
  pos     IN INTEGER
  )
  RETURN INTEGER;
  ```
  表8DBE_SQL.SET_RESULT_TYPE_INT接口说明 
  | 参数名称       | 描述           |
  |:---|:---|
  | context_id | 执行的游标ID      |
  | pos        | 动态定义列在查询中的位置 |
     
  
- DBE_SQL.SET_RESULT_TYPE_LONG
  该函数用来定义从给定游标返回的长列类型（非数据类型long）的列，该接口只能应用于SELECT定义的游标中。定义的列通过查询列表的相对位置来标识，传入变量的数据类型决定了该列被定义的类型。长列的大小限制为1G。
  DBE_SQL.SET_RESULT_TYPE_LONG函数的原型为：
  ```
  DBE_SQL.SET_RESULT_TYPE_LONG(
  context_id     IN INTEGER,
  pos     IN INTEGER
  )
  RETURN INTEGER;
  ```
  表9DBE_SQL.SET_RESULT_TYPE_LONG接口说明 
  | 参数名称       | 描述           |
  |:---|:---|
  | context_id | 执行的游标ID      |
  | pos        | 动态定义列在查询中的位置 |
     
  
- DBE_SQL.SET_RESULT_TYPE_RAW
  该函数用来定义从给定游标返回的RAW类型的列，该接口只能应用于SELECT定义的游标中。定义的列通过查询列表的相对位置来标识，传入变量的数据类型决定了该列被定义的类型。
  DBE_SQL.SET_RESULT_TYPE_RAW函数的原型为：
  ```
  DBE_SQL.SET_RESULT_TYPE_RAW(
  context_id     IN INTEGER,
  pos     IN INTEGER,
  column_ref       IN RAW,
  column_size     IN INTEGER
  )
  RETURN INTEGER;
  ```
  表10DBE_SQL.SET_RESULT_TYPE_RAW接口说明 
  | 参数名称        | 描述           |
  |:---|:---|
  | context_id  | 执行的游标ID      |
  | pos         | 动态定义列在查询中的位置 |
  | column_ref  | RAW类型的参数变量   |
  | column_size | 列的长度         |
     
  
- DBE_SQL.SET_RESULT_TYPE_BYTEA 该函数用来定义从给定游标返回的BYTEA类型的列，该接口只能应用于SELECT定义的游标中。定义的列通过查询列表的相对位置来标识，传入变量的数据类型决定了该列被定义的类型。
  DBE_SQL.SET_RESULT_TYPE_BYTEA函数的原型为：
  ```
  DBE_SQL.SET_RESULT_TYPE_BYTEA(
  context_id     IN INTEGER,
  pos     IN INTEGER,
  column_ref       IN BYTEA,
  column_size     IN INTEGER
  )
  RETURN INTEGER;
  ```
  表11DBE_SQL.SET_RESULT_TYPE_BYTEA接口说明 
  | 参数名称        | 描述           |
  |:---|:---|
  | context_id  | 执行的游标ID      |
  | pos         | 动态定义列在查询中的位置 |
  | column_ref  | BYTEA类型的参数变量 |
  | column_size | 列的长度         |
     
  
- DBE_SQL.SET_RESULT_TYPE_TEXT
  该函数用来定义从给定游标返回的TEXT类型的列，该接口只能应用于SELECT定义的游标中。定义的列通过查询列表的相对位置来标识，传入变量的数据类型决定了该列被定义的类型。
  DBE_SQL.SET_RESULT_TYPE_TEXT函数的原型为：
  ```
  DBE_SQL.DEFINE_COLUMN_CHAR(
  context_id     IN INTEGER,
  pos     IN INTEGER,
  maxsize     IN INTEGER
  )
  RETURN INTEGER;
  ```
  表12DBE_SQL.SET_RESULT_TYPE_TEXT接口说明 
  | 参数名称       | 描述             |
  |:---|:---|
  | context_id | 执行的游标ID        |
  | pos        | 动态定义列在查询中的位置   |
  | maxsize    | 定义的TEXT类型的最大长度 |
     
  
- DBE_SQL.SET_RESULT_TYPE_UNKNOWN
  该函数用来处理从给定游标返回的未知数据类型的列，该接口仅用于类型不识别时的报错退出。
  DBE_SQL.SET_RESULT_TYPE_UNKNOWN函数的原型为：
  ```
  DBE_SQL.SET_RESULT_TYPE_UNKNOWN(
  context_id     IN INTEGER,
  pos     IN INTEGER,
  col_type       IN TEXT
  )
  RETURN INTEGER;
  ```
  表13DBE_SQL.SET_RESULT_TYPE_UNKNOWN接口说明 
  | 参数名称       | 描述           |
  |:---|:---|
  | context_id | 执行的游标ID      |
  | posn       | 动态定义列在查询中的位置 |
  | col_type   | 动态定义的参数      |
     
  
- DBE_SQL.GET_RESULT
  该函数用来返回给定游标给定位置的游标元素值，该接口访问的是DBE_SQL.NEXT_ROW获取的数据。
  DBE_SQL.GET_RESULT函数的原型为：
  ```
  DBE_SQL.GET_RESULT(
  context_id                 IN    INTEGER,
  pos                 IN    INTEGER,
  column_value             INOUT ANYELEMENT
  )
  RETURN ANYELEMENT;
  ```
  表14DBE_SQL.GET_RESULT接口说明 
  | 参数名称         | 描述           |
  |:---|:---|
  | context_id   | 执行的游标ID      |
  | pos          | 动态定义列在查询中的位置 |
  | column_value | 定义的列的返回值     |
     
  
- DBE_SQL.GET_RESULT_CHAR
  该存储过程用来返回给定游标给定位置的游标CHAR类型的值，该接口访问的是DBE_SQL.NEXT_ROW获取的数据。
  DBE_SQL.GET_RESULT_CHAR存储过程的原型为：
  ```
  DBE_SQL.GET_RESULT_CHAR(
  context_id          IN    INTEGER,
  pos                 IN    INTEGER,
  tr                  INOUT CHARACTER，
  err                 INOUT NUMERIC,
  actual_length       INOUT INTEGER
  );
  ```
  表15DBE_SQL.GET_RESULT_CHAR接口说明 
  | 参数名称          | 描述                              |
  |:---|:---|
  | context_id    | 执行的游标ID                         |
  | pos           | 动态定义列在查询中的位置                    |
  | tr            | 返回值                             |
  | err           | 错误号。传出参数，须传入变量做参数。目前未实现，固定传出-1。 |
  | actual_length | 返回值的实际长度                        |
     
  DBE_SQL.GET_RESULT_CHAR存储过程的重载为：
  ```
  DBE_SQL.GET_RESULT_CHAR(
  context_id          IN    INTEGER,
  pos                 IN    INTEGER,
  tr                  INOUT CHARACTER
  );
  ```
  表16DBE_SQL.GET_RESULT_CHAR接口说明 
  | 参数名称       | 描述           |
  |:---|:---|
  | context_id | 执行的游标ID      |
  | pos        | 动态定义列在查询中的位置 |
  | tr         | 返回值          |
     
  
- DBE_SQL.GET_RESULT_INT
  该函数用来返回给定游标给定位置的游标INT类型的值，该接口访问的是DBE_SQL.NEXT_ROW获取的数据。DBE_SQL.GET_RESULT_INT函数的原型为：
  ```
  DBE_SQL.GET_RESULT_INT(
  context_id                 IN    INTEGER,
  pos                 IN    INTEGER
  )
  RETURN INTEGER;
  ```
  表17DBE_SQL.GET_RESULT_INT接口说明 
  | 参数名称       | 描述           |
  |:---|:---|
  | context_id | 执行的游标ID      |
  | pos        | 动态定义列在查询中的位置 |
     
  
- DBE_SQL.GET_RESULT_LONG
  该函数用来返回给定游标给定位置的游标长列（非long/bigint整型）类型的值，该接口访问的是DBE_SQL.NEXT_ROW获取的数据。
  DBE_SQL.GET_RESULT_LONG函数的原型为：
  ```
  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;
  ```
  表18DBE_SQL.GET_RESULT_LONG接口说明 
  | 参数名称       | 描述           |
  |:---|:---|
  | 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存储过程的原型为：
  ```
  DBE_SQL.GET_RESULT_RAW(
  context_id          IN  INTEGER,
  pos                 IN         INTEGER,
  tr                  INOUT      RAW，
  err                 INOUT     NUMERIC,
  actual_length       INOUT INTEGER
  );
  ```
  表19DBE_SQL.GET_RESULT_RAW接口说明 
  | 参数名称          | 描述                              |
  |:---|:---|
  | context_id    | 执行的游标ID                         |
  | pos           | 动态定义列在查询中的位置                    |
  | tr            | 返回的列值                           |
  | err           | 错误号。传出参数，须传入变量做参数。目前未实现，固定传出-1。 |
  | actual_length | 返回值的实际长度，不能长于此值，否则截断。           |
     
  
- DBE_SQL.GET_RESULT_RAW存储过程的重载为：
  ```
  DBE_SQL.GET_RESULT_RAW(
  context_id          IN  INTEGER,
  pos                 IN         INTEGER,
  tr                  INOUT      RAW
  );
  ```
  表20DBE_SQL.GET_RESULT_RAW接口说明 
  | 参数名称       | 描述           |
  |:---|:---|
  | context_id | 执行的游标ID      |
  | pos        | 动态定义列在查询中的位置 |
  | tr         | 返回的列值        |
     
  
- DBE_SQL.GET_RESULT_BYTEA 该存储过程用来返回给定游标给定位置的游标BYTEA类型的值，该接口访问的是DBE_SQL.NEXT_ROW获取的数据。
  DBE_SQL.GET_RESULT_BYTEA存储过程的原型为：
  ```
  DBE_SQL.GET_RESULT_BYTEA(
  context_id          IN  INTEGER,
  pos                 IN         INTEGER
  )
  RETURN BYTEA;
  ```
  表21DBE_SQL.GET_RESULT_BYTEA接口说明 
  | 参数名称       | 描述           |
  |:---|:---|
  | context_id | 执行的游标ID      |
  | pos        | 动态定义列在查询中的位置 |
     
  
- DBE_SQL.GET_RESULT_TEXT
  该函数用来返回给定游标给定位置的游标TEXT类型的值，该接口访问的是DBE_SQL.NEXT_ROW获取的数据。
  DBE_SQL.GET_RESULT_TEXT函数的原型为：
  ```
  DBE_SQL.GET_RESULT_TEXT(
  context_id           IN  INTEGER,
  pos                 IN         INTEGER
  )
  RETURN TEXT;
  ```
  表22DBE_SQL.GET_RESULT_TEXT接口说明 
  | 参数名称       | 描述           |
  |:---|:---|
  | context_id | 执行的游标ID      |
  | pos        | 动态定义列在查询中的位置 |
     
  
- DBE_SQL.GET_RESULT_UNKNOWN
  该函数用来返回给定游标给定位置的游标未知类型的值，该接口为类型不支持时的报错处理接口。
  DBE_SQL.GET_RESULT_UNKNOWN函数的原型为：
  ```
  DBE_SQL.GET_RESULT_UNKNOWN(
  context_id          IN    INTEGER,
  pos                 IN           INTEGER,
  col_type         IN      TEXT
  )
  RETURN TEXT;
  ```
  表23DBE_SQL.GET_RESULT_UNKNOWN接口说明 
  | 参数名称       | 描述           |
  |:---|:---|
  | 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函数的原型为：
  ```
  DBE_SQL.DBE_SQL_GET_RESULT_CHAR(
  context_id     IN    INTEGER,
  pos            IN    INTEGER
  )
  RETURN CHARACTER;
  ```
  表24DBE_SQL.GET_RESULT_CHAR接口说明 
  | 参数名称       | 描述           |
  |:---|:---|
  | 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函数的原型为：
  ```
  DBE_SQL.DBE_SQL_GET_RESULT_LONG(
  context_id          IN INTEGER,
  pos                 IN INTEGER
  )
  RETURN BIGINT;
  ```
  表25DBE_SQL.DBE_SQL_GET_RESULT_LONG接口说明 
  | 参数名称       | 描述           |
  |:---|:---|
  | 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函数的原型为：
  ```
  DBE_SQL.GET_RESULT_RAW(
  context_id          IN  INTEGER,
  pos                 IN         INTEGER,
  tr                  INOUT      RAW
  )
  RETURN RAW;
  ```
  表26DBE_SQL.GET_RESULT_RAW接口说明 
  | 参数名称       | 描述           |
  |:---|:---|
  | context_id | 执行的游标ID      |
  | pos        | 动态定义列在查询中的位置 |
     
  
- DBE_SQL.IS_ACTIVE
该函数用来返回游标的当前状态：游标处于打开、解析、执行、定义时为TRUE，关闭后为FALSE，未知时报错，其余默认为关闭。
DBE_SQL.IS_ACTIVE函数的原型为：
```
DBE_SQL.IS_ACTIVE(
context_id                 IN    INTEGER
)
RETURN BOOLEAN;
```
表27DBE_SQL.IS_ACTIVE接口说明 
| 参数名称       | 描述       |
|:---|:---|
| context_id | 被查询的游标ID |
   
- DBE_SQL.SQL_BIND_VARIABLE
  该函数用来绑定一个参数到SQL语句，当执行SQL语句时，会根据该绑定的值来执行。
  DBE_SQL.SQL_BIND_VARIABLE函数的原型为：
  ```
  DBE_SQL.SQL_BIND_VARIABLE(
      context_id in int,
      query_string in text,
      language_flag in anyelement,
      out_value_size in int default null
  )
  RETURNS void;
  ```
  表28DBE_SQL.SQL_BIND_VARIABLE接口说明 
  | 参数名称           | 描述               |
  |:---|:---|
  | context_id     | 被查询的游标ID         |
  | query_string   | 绑定的变量名           |
  | language_flag  | 绑定的值             |
  | out_value_size | 返回值的大小，默认值为null。 |
     
  
- DBE_SQL.SQL_BIND_ARRAY
  该函数用来绑定一组参数到SQL语句，当执行SQL语句时，会根据该绑定的数组来执行。
  DBE_SQL.SQL_BIND_ARRAY函数的原型为：
  ```
  DBE_SQL.SQL_BIND_ARRAY(
      IN context_id int,
      IN query_string text,
      IN value anyarray
  )
  RETURNS void;
  DBE_SQL.SQL_BIND_ARRAY(
      IN context_id int,
      IN query_string text,
      IN value anyarray,
      IN lower_index int default 1, 
      IN higher_index int default 1
  )
  RETURNS void;
  ```
  表29DBE_SQL.SQL_BIND_ARRAY接口说明 
  | 参数名称         | 描述        |
  |:---|:---|
  | context_id   | 被查询的游标ID  |
  | query_string | 绑定的变量名    |
  | value        | 绑定的数组     |
  | lower_index  | 绑定数组的最小下标 |
  | higher_index | 绑定数组的最大下标 |
     
  
- DBE_SQL.SET_RESULT_TYPE_INTS
  该函数用来定义从给定游标返回的INT数组类型的列，该接口只能应用于SELECT定义的游标中。定义的列通过查询列表的相对位置来标识，传入变量的数据类型决定了该列被定义的类型。
  DBE_SQL.SET_RESULT_TYPE_INTS函数的原型为：
  ```
  DBE_SQL.SET_RESULT_TYPE_INTS(
      IN context_id int,
      IN pos int,
      IN column_ref anyarray,
      IN cnt int,
      IN lower_bnd int
  )
  RETURNS integer;
  ```
  表30DBE_SQL.SET_RESULT_TYPE_INTS接口说明 
  | 参数名称       | 描述           |
  |:---|:---|
  | context_id | 被查询的游标ID     |
  | pos        | 动态定义列在查询中的位置 |
  | column_ref | 标记返回的数组类型    |
  | cnt        | 标记一次获取多少个值   |
  | lower_bnd  | 标记返回数组时的开始下标 |
     
  
- DBE_SQL.SET_RESULT_TYPE_TEXTS
  该函数用来定义从给定游标返回的TEXT数组类型的列，该接口只能应用于SELECT定义的游标中。定义的列通过查询列表的相对位置来标识，传入变量的数据类型决定了该列被定义的类型。
  DBE_SQL.SET_RESULT_TYPE_TEXTS函数的原型为：
  ```
  DBE_SQL.SET_RESULT_TYPE_TEXTS(
      IN context_id int,
      IN pos int,
      IN column_ref anyarray,
      IN cnt int,
      IN lower_bnd int,
      IN maxsize int
  )
  RETURNS integer;
  ```
  表31DBE_SQL.SET_RESULT_TYPE_TEXTS接口说明 
  | 参数名称       | 描述             |
  |:---|:---|
  | 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函数的原型为：
  ```
  DBE_SQL.set_result_type_raws(
      IN context_id int,
      IN pos int,
      IN column_ref anyarray,
      IN cnt int,
      IN lower_bnd int,
      IN column_size int
  )
  RETURNS integer;
  ```
  表32DBE_SQL.SET_RESULT_TYPE_RAWS接口说明 
  | 参数名称        | 描述           |
  |:---|:---|
  | 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函数的原型为：
  ```
  DBE_SQL.set_result_type_byteas(
      IN context_id int,
      IN pos int,
      IN column_ref anyarray,
      IN cnt int,
      IN lower_bnd int,
      IN column_size int
  )
  RETURNS integer;
  ```
  表33DBE_SQL.SET_RESULT_TYPE_BYTEAS接口说明 
  | 参数名称        | 描述           |
  |:---|:---|
  | 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函数的原型为：
  ```
  DBE_SQL.SET_RESULT_TYPE_CHARS(
      IN context_id int, 
      IN pos int,
      IN column_ref anyarray,
      IN cnt int,
      IN lower_bnd int,
      IN column_size int
  )
  RETURNS integer;
  ```
  表34DBE_SQL.SET_RESULT_TYPE_CHARS接口说明 
  | 参数名称        | 描述           |
  |:---|:---|
  | context_id  | 被查询的游标ID     |
  | pos         | 动态定义列在查询中的位置 |
  | column_ref  | 标记返回的数组类型    |
  | cnt         | 标记一次获取多少个值   |
  | lower_bnd   | 标记返回数组时的开始下标 |
  | column_size | 列的长度         |
     
  
- DBE_SQL.SET_RESULTS_TYPE
  该函数用来定义从给定游标返回的列，该接口只能应用于SELECT定义的游标中。定义的列通过查询列表的相对位置来标识，传入变量的数据类型决定了该列被定义的类型。
  DBE_SQL.SET_RESULTS_TYPE函数的原型为：
  ```
  DBE_SQL.SET_RESULTS_TYPE(
      IN context_id int,
      IN pos int,
      IN column_ref anyarray,
      IN cnt int,
      IN lower_bnd int,
      IN maxsize int  DEFAULT 1024
  ) returns void;
  ```
  表35DBE_SQL.SET_RESULTS_TYPE接口说明 
  | 参数名称       | 描述           |
  |:---|:---|
  | 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函数的原型为：
  ```
  DBE_SQL.GET_RESULTS_INT(
      IN context_id int, 
      IN pos int,  
      INOUT column_value anyarray
  );
  ```
  表36DBE_SQL.GET_RESULTS_INT接口说明 
  | 参数名称         | 描述           |
  |:---|:---|
  | context_id   | 被查询的游标ID     |
  | pos          | 动态定义列在查询中的位置 |
  | column_value | 返回值          |
     
  
- DBE_SQL.GET_RESULTS_TEXT
  该函数用来返回给定游标给定位置的游标TEXT数组类型的值，该接口访问的是DBE_SQL.NEXT_ROW获取的数据。
  DBE_SQL.GET_RESULTS_TEXT函数的原型为：
  ```
  DBE_SQL.GET_RESULTS_TEXT(
      IN context_id int,
      IN pos int,  
      INOUT column_value anyarray
  );
  ```
  表37DBE_SQL.GET_RESULTS_TEXT接口说明 
  | 参数名称         | 描述           |
  |:---|:---|
  | context_id   | 被查询的游标ID     |
  | pos          | 动态定义列在查询中的位置 |
  | column_value | 返回值          |
     
  
- DBE_SQL.GET_RESULTS_RAW
  该函数用来返回给定游标给定位置的游标RAW数组类型的值，该接口访问的是DBE_SQL.NEXT_ROW获取的数据。
  DBE_SQL.GET_RESULTS_RAW函数的原型为：
  ```
  DBE_SQL.GET_RESULTS_RAW(
      IN context_id int,
      IN pos int, 
      INOUT column_value anyarray
  );
  ```
  表38DBE_SQL.GET_RESULTS_RAW接口说明 
  | 参数名称         | 描述           |
  |:---|:---|
  | context_id   | 被查询的游标ID     |
  | pos          | 动态定义列在查询中的位置 |
  | column_value | 返回值          |
     
  
- DBE_SQL.GET_RESULTS_BYTEA
  该函数用来返回给定游标给定位置的游标BYTEA数组类型的值，该接口访问的是DBE_SQL.NEXT_ROW获取的数据。
  DBE_SQL.GET_RESULTS_BYTEA函数的原型为：
  ```
  DBE_SQL.GET_RESULTS_BYTEA(
      IN context_id int,
      IN pos int, 
      INOUT column_value anyarray
  );
  ```
  表39DBE_SQL.GET_RESULTS_BYTEA接口说明 
  | 参数名称         | 描述           |
  |:---|:---|
  | context_id   | 被查询的游标ID     |
  | pos          | 动态定义列在查询中的位置 |
  | column_value | 返回值          |
     
  
- DBE_SQL.GET_RESULTS_CHAR
  该函数用来返回给定游标给定位置的游标CHAR数组类型的值，该接口访问的是DBE_SQL.NEXT_ROW获取的数据。
  DBE_SQL.GET_RESULTS_CHAR函数的原型为：
  ```
  DBE_SQL.GET_RESULTS_CHAR(
      IN context_id int, 
      IN pos int,  
      INOUT column_value anyarray
  );
  ```
  表40DBE_SQL.GET_RESULTS_CHAR接口说明 
  | 参数名称         | 描述           |
  |:---|:---|
  | context_id   | 被查询的游标ID     |
  | pos          | 动态定义列在查询中的位置 |
  | column_value | 返回值          |
     
  
- DBE_SQL.GET_RESULTS
  该函数用来返回给定游标给定位置的游标数组类型的值，该接口访问的是DBE_SQL.NEXT_ROW获取的数据。
  ![](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  由于DBE_SQL.GET_RESULTS底层机制通过数组实现，当用不同的数组获取同一列的返回值时，会由于内部索引的不连续向数组中填充NULL值来确保数组本身索引的连续性，这会导致返回结果数组的长度和A数据库的不一致。
  DBE_SQL.GET_RESULTS函数的原型为：
  ```
  DBE_SQL.GET_RESULTS(
      IN context_id int,
      IN pos int,
      INOUT column_value anyarray
  );
  ```
  表41DBE_SQL.GET_RESULTS接口说明 
  | 参数名称         | 描述           |
  |:---|:---|
  | context_id   | 被查询的游标ID     |
  | pos          | 动态定义列在查询中的位置 |
  | column_value | 返回值          |
     
  
- DBE_SQL.SQL_DESCRIBE_COLUMNS
  该函数用来描述列信息，该接口只能应用于SELECT定义的游标中。
  DBE_SQL.SQL_DESCRIBE_COLUMNS函数的原型为：
  ```
  DBE_SQL.SQL_DESCRIBE_COLUMNS(
      context_id in int, 
      col_cnt inout int, 
      desc_t inout dbe_sql.desc_tab
  )RETURNS record ;
  ```
  表42DBE_SQL.SQL_DESCRIBE_COLUMNS接口说明 
  | 参数名称       | 描述        |
  |:---|:---|
  | context_id | 被查询的游标ID  |
  | col_cnt    | 返回的列的数量   |
  | desc_t     | 返回的列的描述信息 |
     
  
- DBE_SQL.DESC_REC
  该类型是复合类型，用来存储SQL_DESCRIBE_COLUMNS接口中的描述信息。
  DBE_SQL.DESC_REC函数的原型为：
  ```
  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.DESC_TAB
  该类型是DESC_REC的TABLE类型，通过TABLE OF语法实现。
  DBE_SQL.DESC_TAB函数的原型为：
  ```
  CREATE TYPE DBE_SQL.DESC_TAB AS TABLE OF DBE_SQL.DESC_REC;
  ```
  
  
- DBE_SQL.DATE_TABLE
  该类型是DATE的TABLE类型，通过TABLE OF语法实现。
  DBE_SQL.DATE_TABLE函数的原型为：
  ```
  CREATE TYPE DBE_SQL.DATE_TABLE AS TABLE OF DATE;
  ```
  
  
- DBE_SQL.NUMBER_TABLE
  该类型是NUMBER的TABLE类型，通过TABLE OF语法实现。
  DBE_SQL.NUMBER_TABLE函数的原型为：
  ```
  CREATE TYPE DBE_SQL.NUMBER_TABLE AS TABLE OF NUMBER;
  ```
  
  
- DBE_SQL.VARCHAR2_TABLE
  该类型是VARCHAR2的TABLE类型，通过TABLE OF语法实现。
  DBE_SQL.VARCHAR2函数的原型为：
  ```
  CREATE TYPE DBE_SQL.VARCHAR2_TABLE AS TABLE OF VARCHAR2(2000);
  ```
  
  
- DBE_SQL.BIND_VARIABLE
  该函数是绑定参数接口，建议使用DBE_SQL.SQL_BIND_VARIABLE。
  
  
- DBE_SQL.SQL_SET_RESULTS_TYPE_C
  该函数是动态定义一个数组类型的列，不建议用户使用。
  DBE_SQL.SQL_SET_RESULTS_TYPE_C函数的原型为：
  ```
  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;
  ```
  表43DBE_SQL.SQL_SET_RESULTS_TYPE_C接口说明 
  | 参数名称       | 描述               |
  |:---|:---|
  | context_id | 被查询的游标ID         |
  | pos        | 动态定义列在查询中的位置     |
  | column_ref | 标记返回的数组类型        |
  | cnt        | 标记一次获取多少个值       |
  | lower_bnd  | 标记返回数组时的开始下标     |
  | col_type   | 标记返回的数组类型对应的变量类型 |
  | maxsize    | 定义的类型的最大长度       |
     
  
- DBE_SQL.SQL_GET_VALUES_C
  该函数是读取一个已动态定义的列值，不建议用户使用。
  DBE_SQL.SQL_GET_VALUES_C函数的原型为：
  ```
  DBE_SQL.sql_get_values_c(
      context_id in int,
      pos in int,
      results_type inout anyarray,
      result_type in anyelement
  )return anyarray;
  ```
  表44DBE_SQL.SQL_GET_VALUES_C接口说明 
  | 参数名称         | 描述       |
  |:---|:---|
  | context_id   | 被查询的游标ID |
  | pos          | 参数位置信息   |
  | results_type | 获取的结果    |
  | result_type  | 获取的结果类型  |
     
  

- DBE_SQL.GET_VARIABLE_RESULT
  该函数用来返回绑定的OUT参数的值，可以用来获取存储过程中的OUT参数。
  DBE_SQL.GET_VARIABLE_RESULT函数的原型为：
  ```
  DBE_SQL.get_variable_result(
      IN context_id int,
      IN pos VARCHAR2,
      INOUT column_value anyelement
  );
  ```
  表45DBE_SQL.GET_VARIABLE_RESULT接口说明 
  | 参数名称         | 描述       |
  |:---|:---|
  | context_id   | 被查询的游标ID |
  | pos          | 绑定的参数名   |
  | column_value | 返回值      |
     
  
- DBE_SQL.GET_VARIABLE_RESULT_CHAR
  该函数用来返回绑定的CHAR类型的OUT参数的值，可以用来获取存储过程中的OUT参数。
  DBE_SQL.GET_VARIABLE_RESULT_CHAR函数的原型为：
  ```
  DBE_SQL.get_variable_result_char(
      IN context_id int,
      IN pos VARCHAR2
  )
  RETURNS char
  ```
  表46DBE_SQL.GET_VARIABLE_RESULT_CHAR接口说明 
  | 参数名称       | 描述       |
  |:---|:---|
  | context_id | 被查询的游标ID |
  | pos        | 绑定的参数名   |
     
  
- DBE_SQL.GET_VARIABLE_RESULT_RAW
  该函数用来返回绑定的RAW类型的OUT参数的值，可以用来获取存储过程中的OUT参数。
  DBE_SQL.GET_VARIABLE_RESULT_RAW函数的原型为：
  ```
  CREATE OR REPLACE FUNCTION DBE_SQL.get_variable_result_raw(
      IN context_id int,
      IN pos VARCHAR2,
      INOUT value anyelement
  )
  RETURNS anyelement
  ```
  表47DBE_SQL.GET_VARIABLE_RESULT_RAW接口说明 
  | 参数名称       | 描述       |
  |:---|:---|
  | context_id | 被查询的游标ID |
  | pos        | 绑定的参数名   |
  | value      | 返回值      |
     
  
- DBE_SQL.GET_VARIABLE_RESULT_TEXT
  该函数用来返回绑定的TEXT类型的OUT参数的值，可以用来获取存储过程中的OUT参数。
  DBE_SQL.GET_VARIABLE_RESULT_TEXT函数的原型为：
  ```
  CREATE OR REPLACE FUNCTION DBE_SQL.get_variable_result_text(
      IN context_id int,
      IN pos VARCHAR2
  )
  RETURNS text
  ```
  表48DBE_SQL.GET_VARIABLE_RESULT_TEXT接口说明 
  | 参数名称       | 描述       |
  |:---|:---|
  | context_id | 被查询的游标ID |
  | pos        | 绑定的参数名   |
     
  
- DBE_SQL.GET_VARIABLE_RESULT_INT
  该函数用来返回绑定的INT类型的OUT参数的值，可以用来获取存储过程中的OUT参数。
  DBE_SQL.GET_VARIABLE_RESULT_INT函数的原型为：
  ```
  DBE_SQL.get_variable_result_int(
      IN context_id int,
      IN pos VARCHAR2,
      INOUT value anyelement
  )
  RETURNS anyelement
  ```
  表49DBE_SQL.GET_VARIABLE_RESULT_INT接口说明 
  | 参数名称       | 描述       |
  |:---|:---|
  | context_id | 被查询的游标ID |
  | pos        | 绑定的参数名   |
  | value      | 返回值      |
     
  
- DBE_SQL.GET_ARRAY_RESULT_TEXT
  该函数用来返回绑定的TEXT数组类型的OUT参数的值，可以用来获取存储过程中的OUT参数。
  DBE_SQL.GET_ARRAY_RESULT_TEXT函数的原型为：
  ```
  DBE_SQL.get_array_result_text(
      IN context_id int,
      IN pos VARCHAR2,
      INOUT column_value anyarray
  )
  ```
  表50DBE_SQL.GET_ARRAY_RESULT_TEXT接口说明 
  | 参数名称         | 描述       |
  |:---|:---|
  | context_id   | 被查询的游标ID |
  | pos          | 绑定的参数名   |
  | column_value | 返回值      |
     
  
- DBE_SQL.GET_ARRAY_RESULT_RAW
  该函数用来返回绑定的RAW数组类型的OUT参数的值，可以用来获取存储过程中的OUT参数。
  DBE_SQL.GET_ARRAY_RESULT_RAW函数的原型为：
  ```
  DBE_SQL.get_array_result_raw(
      IN context_id int,
      IN pos VARCHAR2,
      INOUT column_value anyarray
  )
  ```
  表51DBE_SQL.GET_ARRAY_RESULT_RAW接口说明 
  | 参数名称         | 描述       |
  |:---|:---|
  | context_id   | 被查询的游标ID |
  | pos          | 绑定的参数名   |
  | column_value | 返回值      |
     
  
- DBE_SQL.GET_ARRAY_RESULT_CHAR
  该函数用来返回绑定的CHAR数组类型的OUT参数的值，可以用来获取存储过程中的OUT参数。
  DBE_SQL.GET_ARRAY_RESULT_CHAR函数的原型为：
  ```
  DBE_SQL.get_array_result_char(
      IN context_id int,
      IN pos VARCHAR2,
      INOUT column_value anyarray
  )
  ```
  表52DBE_SQL.GET_ARRAY_RESULT_CHAR接口说明 
  | 参数名称         | 描述       |
  |:---|:---|
  | context_id   | 被查询的游标ID |
  | pos          | 绑定的参数名   |
  | column_value | 返回值      |
     
  
- DBE_SQL.GET_ARRAY_RESULT_INT
  该函数用来返回绑定的INT数组类型的OUT参数的值，可以用来获取存储过程中的OUT参数。
  DBE_SQL.GET_ARRAY_RESULT_INT函数的原型为：
  ```
  DBE_SQL.get_array_result_int(
      IN context_id int,
      IN pos VARCHAR2,
      INOUT column_value anyarray
  )
  ```
  表53DBE_SQL.GET_ARRAY_RESULT_INT接口说明 
  | 参数名称         | 描述       |
  |:---|:---|
  | context_id   | 被查询的游标ID |
  | pos          | 绑定的参数名   |
  | column_value | 返回值      |
     
  
#### 示例
```
--在存储过程中操作raw数据
openGauss=# create or replace procedure pro_dbe_sql_all_02(in_raw raw,v_in int,v_offset int)
as 
context_id int;
v_id int;
v_info bytea :=1;
query varchar(2000);
execute_ret int;
define_column_ret_raw bytea :='1';
define_column_ret int;
begin
drop table if exists pro_dbe_sql_all_tb1_02 ;
create table pro_dbe_sql_all_tb1_02(a int ,b blob);
insert into pro_dbe_sql_all_tb1_02 values(1,HEXTORAW('DEADBEEE'));
insert into pro_dbe_sql_all_tb1_02 values(2,in_raw);
query := 'select * from pro_dbe_sql_all_tb1_02 order by 1';
--打开游标
context_id := dbe_sql.register_context();
--编译游标
dbe_sql.sql_set_sql(context_id, query, 1);
--定义列
define_column_ret:= dbe_sql.set_result_type(context_id,1,v_id);
define_column_ret_raw:= dbe_sql.set_result_type_raw(context_id,2,v_info,10);
--执行
execute_ret := dbe_sql.sql_run(context_id);
loop 
exit when (dbe_sql.next_row(cursorid) <= 0);
--获取值
dbe_sql.get_result(context_id,1,v_id);
dbe_sql.get_result_raw(context_id,2,v_info,v_in,v_offset);
--输出结果
dbe_output.print_line('id:'|| v_id || ' info:' || v_info);
end loop;
--关闭游标
dbe_sql.sql_unregister_context(context_id);
end;
/
--调用存储过程
openGauss=# call pro_dbe_sql_all_02(HEXTORAW('DEADBEEF'),0,1);
--删除存储过程
openGauss=# DROP PROCEDURE pro_dbe_sql_all_02;
```
