VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

与数据库服务器连接

功能描述

和一个数据库进行连接。

接口原型

EXEC SQL CONNECT TO target [AS connection-name] [USER user-name];

参数说明

参数名 参数说明
target target(目标) 可以用下面的方法声明:
dbname[@hostname][:port]
tcp:postgresql://hostname[:port][/dbname][?options]
unix:postgresql://hostname[:port][/dbname][?options]
一个包含上面形式的SQL字串文本
一个对包含上面的形式之一的字符串变量的引用
DEFAULT
如果你用文本声明连接目标(也就是说,不是通过一个变量引用), 而且你也不引用这个数值,那么使用普通SQL的大小写无关的规则。 这种情况下,你也可以根据需要独立地对参数使用双引号包围。 实际上,可能用一个(单引号包围)的 字串文本或者变量引用作为连接目标可能更结实一些。 连接目标DEFAULT发起一个用缺省用户名对缺省数据库地连接。 这个时候不应该声明用户名或连接名。
connection-name connection-name(连接名)用于处理一个程序里的多个连接。 如果一个程序只使用一个连接,则可以省略它。 最近打开的连接成为当前连接, 在准备执行SQL语句的时候,缺省时会使用这个连接。(连接名可以为宿主变量)。
user-name 声明user-name(用户名)的方法也有几种不同方式:
username
username
password
username ECPGIDENTIFIED BY password
username USING password
参数用户名和密码可以是一个SQL标识, 一个字符变量,或者一个字符串。

返回值

其他

类似于EXEC SQL CONNECT TO :target USER :user USING :passwd;这种前缀了冒号的变量采用的是变量引用的方法。

举例说明使用接口:

EXEC SQL CONNECT TO mydb@sql.mydomain.com;
EXEC SQL CONNECT TO unix:postgresql://sql.mydomain.com/mydb AS myconnection USER john;
EXEC SQL BEGIN DECLARE SECTION;
const char *target = "mydb@sql.mydomain.com";
const char *user = "john";
const char *passwd = "secret";
EXEC SQL END DECLARE SECTION;
EXEC SQL CONNECT TO :target USER :user USING :passwd;
/* or EXEC SQL CONNECT TO :target USER :user/:passwd; */