返回首页

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

更新日期:2024年09月11日

CLUSTER_LOAD_RESULT
表 5-55 具体信息如下:
TASK_ID
加载ID
DB_NAME
加载数据库名
TB_NAME
加载表名
USER
当前加载用户名
ACCESS_IP
加载发起点IP
HOST_IP
客户端IP
START_TIME
加载开始时间
END_TIME
加载结束时间
ELAPSED_TIME
加载耗时
TOTAL_SIZE
加载文件总大小
AVERAGE_SPEED
加载平均速度
LOADED_RECORDS
加载数据条数
SKIPPED_RECORDS
加载数据跳过条数
IGNORED_FILES
加载跳过的文件数
RESULT
加载结果
SQL_CMD
加载SQL
MESSAGE
错误信息


GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 930 -

sqgetdbs() 函数返回数据库服务器可访问的数据库的名称。

语法

mint sqgetdbs(ret_fcnt, dbnarray, dbnsize, dbnbuffer, dbnbufsz)
mint *ret_fcnt;
char **dbnarray;
mint dbnsize;
char *dbnbuffer;
mint dbnbufsz;
ret_fcnt
指向该函数返回的数据库名称的数目的指针。
dbnarray
用户定义的字符指针的数组。
dbnsize
dbnarray 用户定义的数组的大小。
dbnbuffer
指向包含该函数返回的数据库名称的用户定义的缓冲区的指针。
dbnbufsz
dbnbuffer 用户定义的缓冲区的大小。

用法

您必须将下列用户定义的数据结构提供给 sqgetdbs() 函数:
dbnbuffer 缓冲区保存 sqgetdbs() 返回的以空终止的数据库名称的名称。
dbnarray 数组保存指向该函数存储在 dbnbuffer 缓冲区中的数据库名称的指针。例如,
dbnarray[0] 指向第一个数据库名称的第一个字符(在 dbnbuffer 中),dbnarray[1] 指向第
二个数据库名称的第一个字符,依此类推。

如果该应用程序连接到数据库服务器,则对sqgetdbs() 函数的调用返回当前连接的数
据库服务器中可用的数据库的名称。
这包括用户定义的数据库和 sysmaster 数据库。
然而,
它返回
(GBASEDBTSERVER 环境变量指示的)
在缺省的数据库服务器中可用的数据库名
称。如果您使用 DBPATH 环境变量来标识包含数据库的附加的数据库服务器,则

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 931 -

sqgetdbs() 也罗列在这些数据库服务器上可用的数据库。
它首先罗列通过 DBPATH 可用的
数据库,然后是通过 GBASEDBTSERVER 环境变量可用的数据库。

返回代码
0
成功地取得数据库名称
<0
未能取得数据库名称

示例

demo 目录中的 sqgetdbs.ec 文件中包含此样例程序。
/*
* sqgetdbs.ec *

This program lists the available databases in the database server of the current connection.
*/

#include

/* Defines used with exception-handling function: exp_chk() */
#define WARNNOTIFY 1
#define NOWARNNOTIFY 0

/* Defines used for user-defined data structures for sqgetdbs() */
#define BUFFSZ 256
#define NUM_DBNAMES 10

main()
{
char db_buffer[ BUFFSZ ]; /* buffer for database names */ /* array of pointers to
database names in 'db_buffer' */
char *dbnames[ NUM_DBNAMES ];

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 932 -

mint num_returned; /* number of database names returned */
mint ret, i;

printf("SQGETDBS Sample ESQL Program running.\n\n");

EXEC SQL connect to default;
exp_chk("CONNECT TO default server", NOWARNNOTIFY);
printf("Connected to default server.\n");

ret = sqgetdbs(#_returned, dbnames, NUM_DBNAMES,
db_buffer, BUFFSZ);
if(ret < 0)
{
printf("Unable to obtain names of databases.\n");
exit(1);
}
printf("\nNumber of database names returned = %d\n", num_returned);

printf("Databases currently available:\n");
for (i = 0; i < num_returned; i++)
printf("\t%s\n", dbnames[i]);
printf("\nSQGETDBS Sample Program over.\n\n");
}

/*
* The exp_chk() file contains the exception handling functions to
* check the SQLSTATE status variable to see if an error has occurred
* following an SQL statement. If a warning or an error has
* occurred, exp_chk() executes the GET DIAGNOSTICS statement and * displays the
detail for each exception that is returned.
*/
EXEC SQL include exp_chk.ec;
输出

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 933 -


您从 sqgetdbs 样例程序看到的输出依赖于如何设置您的 GBASEDBTSERVER 和
DBPATH 环境变量。下列样例输出假定将 GBASEDBTSERVER 环境变量设置为
mainserver,且假定此数据库服务器包含称为 stores7、sysmaster 和 tpc 的三个数据库。
此输出还假定未设置 DBPATH 环境变量。

SQGETDBS Sample ESQL Program running.

Connected to default server.

Number of database names returned = 3
Databases currently available:
stores7@mainserver
sysmaster@mainserver
tpc@mainserver

SQGETDBS Sample Program over.

声明与列相同类型的变量
在本例中,surname变量继承了变量name的数据类型、大小和 NOT NULL约束。因
为 surname 没有继承名称的初始值,所以它的声明需要一个初始值(不能超过25个字符)。
DECLARE
surname employees.last_name%TYPE;
BEGIN
DBMS_OUTPUT.PUT_LINE('surname=' || surname);
END;


GBase 8s PL/SQL手册
南大通用数据技术股份有限公司
- 12 -

--Result:
--surname=