私は最近 Oracle SQL の学習を始めましたが、セミコロンの終了が必要かどうか (または、使用している特定のデータベース プログラムの機能であるかどうか) について少し混乱しています。
職場では、DBVisualizer を使用する必要があり、常にセミコロンで終了しますが、本「Oracle SQL by Example」では、一貫して不足しています。誰かが私を啓発してもらえますか?ありがとう。
これはdba.stackexchangeからの同様の質問です。受け入れられた回答は、ローカルインスタンスへのコマンドはリターン時に実行され、サーバーへの複数行コマンドはセミコロンで実行されると述べています。
セミコロンがターミネーターなのかセパレーターなのかという問題は、コンピューター言語では 40 年以上も厄介な問題でした。Pascal と Java を比較します。
SQL で区切り文字としてセミコロンを使用できる場合、Oracle の SQL/plus インタープリターのように、対話型 SQL では必要ない場合があります。しかし、SQL パーサーには、実際にその作業が必要です。SQL は明らかに、パーサーを簡単に作成できるように設計されていません。
このことを考慮:
select
College_Name,
City
from
Colleges
パーサーは、コマンドが次のように続行しないことをどのように認識しますか?
where
State = 'CA'
ある種の開始と終了のペアで囲まれた一連のコマンドも入力できる場合、パーサーにとって事態はさらに困難になります。セミコロンはパーサーに非常に役立ちます。
インタラクティブ SQL のいくつかの方言では、Enter キーを 2 回押すと実行がトリガーされる場合があります。他の国では、この目的のために「go」などの特別なコマンドが使用されます。