暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

使用DB-Access命令行交互方式连接GBase 8s数据库

wj2021 2022-03-24
1314

一、 启动DB-Access

通过从命令行运行 dbaccess 命令可启动 DB-Access。可以选择是使用 DB-Access 菜单界面还是使用命令行界面。

可通过以下方式来启动并使用 DB-Access: 

从主菜单启动 DB-Access。

从特定菜单或屏幕启动 DB-Access。

在未显示 DB-Access 菜单的情况下,运行包含SQL语句的文件。

在没有菜单界面的情况下,从命令行以交互方式启动并运行 DB-Access。

如果 UNIXTM上的 TERM、TERMCAP 或 TERMINFO 环境变量无法使 DB-Access 识别您使用的终端类型,那么主菜单不会显示。相反,会显示与下列文本类似的消息:

未知的终端类型。                                                         

如果在 UNIXTM 终端上使用窗口界面,请从非滚动控制台窗口发出 dbaccess 命令。

技巧: 如果操作系统找不到 dbaccess,请在程序名前面包含完整路径,如下所示:

$GBASEDBTDIR/bin/dbaccess

二、 在不使用菜单的情况下以交互方式运行 DB-Access

如果不希望使用菜单,并且没有预编译的SQL文件,请使用键盘或标准输入设备从命令行输入SQL语句。

在不使用菜单自变量并且将连字符作为最后一个自变量的情况下启动 DB-Access 时,DB-Access 会处理来自标准输入设备(在 UNIXTM 上)的命令。DB-Access 会读取您指示输入完成之前所输入的内容。然后,DB-Access 会处理您的输入,并将结果写入标准输出设备(在 UNIX 上)。

DB-Access 以交互方式读取和运行来自终端键盘的SQL语句。当 DB-Access 交互式运行时,大于 (>) 提示符标记可输入下一个SQL语句的行。

当输入分号 (;) 以结束单个SQL语句时,DB-Access 将处理该语句。当按 CTRL-D 以结束交互式会话时,DB-Access 停止运行。下列示例显示了交互式会话中的用户输入和结果:

dbaccess - -                                                                

>database stores_demo;                                                    

                                                                           

Database selected.                                                         

                                                                           

>select count(*) from systables;                                             

(count(*))                                                                  

  21                                                                       

1 row(s) retrieved.                                                          

>                                                                          

                                                                           

dbaccess - -                                                                

>database stores_demo;                                                    

                                                                           

Database selected.                                                         

                                                                           

>select count(*) from systables;                                             

(count(*))                                                                  

  21                                                                       

1 row(s) retrieved.                                                          

>                                                                          

 

1. 批处理命令输入 (UNIX)

可以使用直接插入 shell 脚本来提供一个或多个 SQL 语句。例如,可以使用具有直接插入标准输入文件的 UNIX C、Bourne 或 Korn shell:

dbaccess mystores- <<EOT!                                                 

select avg(customer_num) from customer                                    

where fname matches '[A-G]*';                                              

EOT!                                                                       

可以使用管道来提供 SQL 语句,如此 UNIX 示例所示:

echo 'select count(*) from systables' | dbaccess mystores                     

DB-Access 将任何以感叹号(!)开始的行解释为 shell 命令。可以将 shell 转义行与SQL语句混合,并将其放入 SQL 语句中,如下所示:

dbaccess mystores -                                                        

>select                                                                    

!echo hello                                                                 

>hello                                                                     

count(*) from systables;                                                     

>                                                                          

(count(*))                                                                  

  21                                                                       

1 row(s) retrieved.                                                          

>                                                                          

 

2. 以交互方式连接到数据库环境

可以在以交互方式发出的 SQL 语句中使用 CONNECT . . . USER 语法。但是,当连接至缺省数据库服务器时,DB-Access 不支持 CONNECT 语句的 USER 子句。

当您在交互方式下将 USER 'user identifier' 子句包括在 CONNECT 语句中时,DB-Access 会提示您输入密码。

下列两个命令示例显示了如何在交互方式下连接至数据库服务器。第一个示例使用未指定用户标识的 CONNECT 语句。

dbaccess -nohistory- -                                                      

> connect to '@starfish';                                                    

Connected.                                                                 

如果在 CONNECT 语句中包括 USER 子句(如第二个示例所示),DB-Access 使用回送禁止来提示您输入密码:

> connect to '@starfish' user 'marae';                                        

                                                                           

ENTER PASSWORD:                                                         

                                                                           

Connected.                                                                

限制: 为了安全起见,不要在密码可以被看到的屏幕上输入密码。另外,当交互式使用DB-Access 时,不要在 CONNECT 语句中包括 USING password 子句。如果处于交互方式下,并在提示之前尝试输入密码,那么将会显示错误消息。

您可以在包括 USER 子句的 DB-Access 文件中运行 CONNECT 语句的 USER 子句。下列示例使用包含 CONNECT 语句(具有 USING 子句)的命令文件连接至数据库服务器:

dbaccess - connfile.sql                                                     

重要: 包含以下语句的 SQL 命令文件受到保护,除 USER 子句所标识的 user_id 之外的其他任何人均无法访问。

CONNECT TO '@dbserver' USER 'user_id' USING password                   

对于 UNIXTM,以下示例使用 shell 文件连接至数据库服务器。DB-Access 提示您输入密码。

dbaccess - - <<\!                                                           

connect to '@starfish' user 'marae';                                          

!                                                                           

                                                                           

ENTER PASSWORD:                                                         

此处,分隔引号保留了数据库服务器名称中和用户授权标识中的字母大小写。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论