一連のデータベース命令を実行するには、最初にデータベースセッションを明示的に開きます。このコマンドでは、データベースセッションを開くユーザを入力することができます。ユーザを指定しない場合は、最初の DBM ユーザのデータが使用されます。このデータベースセッションで実行できるのは、データベースセッションの開始に使用したユーザに権限があるデータベース命令に限定されるので注意してください。
このデータベースセッションは、常に AUTOCOMMIT モードで開かれます。したがって、実行された SQL 文はCOMMIT 命令で自動的に終了するため、ROLLBACK命令によるロールバックはできなくなります。
このデータベースセッションでは、DBM コマンド db_executeまたは db_executeniceを使用してデータベース命令をデータベースインスタンスに送信します。
特定の状況でこれらのコマンドのどちらを優先するかは、データベース命令の結果セットの最大レコード数を表示するか、またはレコードごとの結果を表示するかによって決まります。
db_execute を使用すると、生成される結果セットが応答パッケージのサイズ (約 16 KB) を超える場合があります。この場合、データベースマネージャは結果セットの出力内にキーワード CONTINUE を表示し、照会可能なデータがさらにあることを示します。この残りのデータを照会するには、DBM コマンド db_fetch を使用します。
db_executenice を使用し、次のデータレコードに移行する場合は、DBM コマンド db_fetchnice を使用します。
結果のデータがすべて表示されたら、データベースセッションを閉じるか、またはデータベースマネージャ CLI を終了します (該当する場合)。
応答パッケージのサイズを超える結果セットが予期される場合や、結果セットをレコードごとに表示する場合は、1 つのデータベース命令を実行するためにデータベースセッションを明示的に開く必要があります。この作業が必要になるのは、結果を照会するために同じデータベースセッションで複数のデータベース命令を実行する必要があるためです。
前提条件について確認するには、データベースマネージャ CLIの db_connect、db_execute、db_executenice、db_fetch、db_fetchnice、db_releaseの各セクションを参照してください。
参照:
3 つの新規データベースユーザを登録し、必要な SQL 文を続けて実行します。そのためには、データベースセッションを開く必要があります。
新規データベースユーザを登録する権限は、データベースシステム管理者にのみ与えられています。そのため、データベースシステム管理者のデータを使用してデータベースセッションを開く必要があります。この DBM コマンドでユーザを指定しない場合は、最初の DBM ユーザのデータが使用されます。
参照:
データベースシステムのコンセプト、ユーザ、認証および権限
参照マニュアル、CREATE USER 命令
...
1. データベースマネージャCLI をセッションモードで呼び出し、パスワードに MONDAYを指定してユーザ OLEG としてログオンし、データベースインスタンス DEMODBに接続します。
>dbmcli -u OLEG,MONDAY -d DEMODB
dbmcli on demodb>
2. パスワードに SECRETを指定してデータベース管理者 DBADMINとしてデータベースセッションを開始します。
dbmcli on demodb>db_connect DBADMIN,SECRET
OK
3. パスワードに RED、プロパティに DBAおよび NOT EXCLUSIVEを指定して SQL 文を実行し、ユーザ MONAを登録します。
dbmcli on demodb>db_execute CREATE USER mona PASSWORD red DBA NOT EXCLUSIVE
OK
4. パスワードに BLUE、プロパティに RESOURCEを指定して SQL 文を実行し、ユーザ DAVIDを登録します。
dbmcli on demodb>db_execute CREATE USER david PASSWORD blue RESOURCE
OK
5. パスワードに PINK、プロパティに STANDARDを指定して SQL 文を実行し、ユーザ BORISを登録します。
dbmcli on demodb>db_execute CREATE USER boris PASSWORD pink STANDARD
OK
6. データベースセッションを閉じます。
dbmcli on demodb>db_release
OK
データベースユーザ MONA、DAVID、および BORISが指定したプロパティで登録され、このデータベースインスタンスにログオンできるようになりました。
SQL 文を実行して usersテーブルの内容を照会します。結果セットはデータレコードごとに表示します。
...
1. データベースマネージャCLI をセッションモードで呼び出し、パスワードに MONDAYを指定してユーザ OLEG としてログオンし、データベースインスタンス DEMODBに接続します。
>dbmcli -u OLEG,MONDAY -d DEMODB
dbmcli on demodb>
2. データベースセッションを開始します(ユーザを指定しない場合は、最初の DBM ユーザのデータが使用されます)。
dbmcli on demodb>db_connect
OK
3. テーブル usersの内容 (ユーザ名、接続モード、ユーザ ID) をレコードごとに表示する SQL 文を実行します。
dbmcli on demodb>db_executenice SELECT username,connectmode,user_id FROM users
OK
CONTINUE
USERNAME = 'DBM'
CONNECTMODE = 'MULTIPLE'
USER_ID = 0
---
4. 次のデータレコードを照会します。
dbmcli on demodb>db_fetchnice
OK
CONTINUE
USERNAME = 'DBADMIN'
CONNECTMODE = 'MULTIPLE'
USER_ID = 10
---
5. 次のデータレコードを照会します。
dbmcli on demodb>db_fetchnice
OK
USERNAME = 'MONA'
CONNECTMODE = 'MULTIPLE'
USER_ID = 27
DBM コマンド db_fetchniceを実行するたびに、結果セットの次のデータレコードが表示されます。