以下の実行結果を表示するためのSQL文はどれですか。
ORACLE DATABASE's BEST DATASE
以下の実行結果を表示するためのSQL文はどれですか。
ORACLE DATABASE's BEST DATASEASELECT '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つあります:
- 一重引用符を2つ続けて記述する(
''でエスケープ) - q引用符構文を使う:
q'<任意の区切り文字>文字リテラル<同じ区切り文字>'
各選択肢の検討:
- A:
'ORACLE DATABASE's...'のように生の'を含むため、構文エラー。 - B:
DATABASE''sと'を2つ続けてエスケープしているので正しい。 - C:q引用符構文で区切り文字に
(と)を使用。括弧類は対応する閉じ括弧で終わる。 - D:q引用符構文で区切り文字に
Aを使用。任意の1文字が区切り文字になる。
q引用符構文は、リテラル内に ' が多く含まれる場合に可読性が高くなる便利な記法です。
例:
SELECT q'[It's "Today's" report]' FROM dual;