SQL SELECT文を使用したデータの取得複数選択3 / 50 問

以下の実行結果を表示するためのSQL文はどれですか。

ORACLE DATABASE's BEST DATASE
ASELECT 'ORACLE DATABASE's BEST DATABASE' FROM dual;
BSELECT 'ORACLE DATABASE''s BEST DATABASE' FROM dual;✓
CSELECT q'(ORACLE DATABASE's BEST DATABASE)' FROM dual;✓
DSELECT q'AORACLE DATABASE's BEST DATABASEA' FROM dual;✓
正解:B・C・D解説

文字リテラルの中に一重引用符(')を含めたい場合の表記方法は2つあります:

  1. 一重引用符を2つ続けて記述する(''でエスケープ)
  2. q引用符構文を使う:q'<任意の区切り文字>文字リテラル<同じ区切り文字>'

各選択肢の検討

  • A:'ORACLE DATABASE's...'のように生の'を含むため、構文エラーになります。
  • B:DATABASE''sと'を2つ続けてエスケープしているので正しいです。
  • C:q引用符構文で区切り文字に(と)を使用しています。括弧類は対応する閉じ括弧で終わります。
  • D:q引用符構文で区切り文字にAを使用しています。任意の1文字が区切り文字になります。

前後の問題