MINERVA superseeded IF/Prolog.
Please see
http://www.ifcomputer.co.jp/MINERVA
for details.
We discontinued to sell IF/Prolog Dec 31. 2003.
For current customers, we continue to provide
professional support for IF/Prolog until Dec 31, 2008.
以後の述語の説明の際に使われている引数名は、下の表で示す値が与えられます。
ユーザId アトム 'ユ−ザ/パスワ−ド'
返り値 整数:Oracleの返り値,0=成功
SQL質問 正式なSQL質問を形成するアトム
選択質問 正式なSELECT質問を形成するアトム
タプル数 1〜最大整数値の中の整数,-1は全タプルを示す。
タプルリスト タプルのリスト:[タプル1,タプル2,... ]
タプル フィールドのリスト:[値1,値2,... ]
値 アトム項
oracle_logon(+ユーザId,-返り値)
oracle_logoff(-返り値)
最初に、oracle_logon/2を使って、Oracleデ−タベ−スにログオンします。ユーザIdは、ユーザ名/パスワードという形です。「返り値」はログオンが成功すると0になります。
「ユ−ザId」は、Oracleのユ−ザIDで、Unixシステムのログイン名ではありません。「ユーザId」は、前もってセットされていなければなりません(たとえば sqlplusを使って)。「返り値」が0でない場合には、ユ−ザIDがあることを確かめて下さい。詳しくは、Oracleマニュアルを参照して下さい。
oracle_logoffは、Oracleデ−タベ−スからログオフします。変更をコミットしない状態でのログオフは、暗黙のロ−ルバックとなります。ログオフが成功すると「返り値」は0にセットされます。
?- oracle_logon('scott/tiger',X).
X = 0
yes
?- _
oracle_commit(-返り値)
oracle_rollback(-返り値)
oracle_auto_on(-返り値)
oracle_auto_off(-返り値)
oracle_commit/1は、ログオンされてから、または、この述語の最後の使用以降のデ−タベ−スへの変更をセ−ブします。oracle_rollback/1は、ログオンされてからまたはoracle_commitが前回に呼び出されて以来のデ−タベ−スへの変更を元に戻す、すなわち"ロ−ルバツク"します。
oracle_auto_off/1は、自動コミットの解除をします(デフォルトはオフ)。デ−タベ−スへの変更は、oracle_commitが呼び出されるまでは、永続的なものではありません。
oracle_auto_on/1は、自動コミットに設定します。これにより、デ−タベ−スの状態を変更するコマンドの後に、ただちにコミットコマンドが自動的に実行されます。
「返り値」は、コマンドの実行が成功した場合には、常に0です。
oracle_exec(+SQL質問,-返り値)
# oracle_fetch_n(+選択質問,+タプル数,-タプルリスト)
oracle_exec/2は、SELECTを除くSQLのコマンドを実行します。質問は、「SQL質問」にアトムで与えなければなりません。'sqlplus'を使う場合とは違い、セミコロン';'は不要です。 「返り値」は、コマンドが構文的に正しく、実行に成功した場合には0となります。
oracle_fetch_n/3は、SELECT質問を実行します。それは「選択質問」にアトムで与えなければなりません。見つかった各タプルは、フィ−ルド値のリストのリストとして、「タプルリスト」に返されます。最大で、「タプル数」(>0)個の解が得られます。バックトラックが生じた場合には、次の「タプル数」個の解が得られます。以後も同様です。「タプル数」= -1とした場合には、すべての解が1回の呼び出しで得られます。
?- concat(['create table people ',
'(name char(20),age number(5))'], SQLC),
oracle_exec(SQLC,X).
X = 0
yes
?- _
|