Oracle 21c SQL言語リファレンス のバッカス正規形構文のバグ(見つける都度追記)

Oracle公式のSQL言語リファレンスは、丸や四角を線で結んだ図形構文図は殆どの場合正しいが、Oralcle版BNF(バッカス正規形構文)は不具合が多い。
てっきりバッカス正規形構文から自動的に図形構文図を作っているのかと思ったが、品質の差が大きいので違うらしい。
MicrosoftのSQL Serverのリファレンスにも不具合は有るが、英語版のリファレンスのGitに不具合を報告すればすぐに直してくれる。日本語版のリファレンスの不具合は、報告しても反応は無いが、いずれ英語版の記載の修正が日本語版にも降ってくるはず。多分。
しかしOracleは、そもそもどこに報告すれば良いのかわからない。品質はぼろぼろで自分たちではどうにもしないのに。

以下は、[SQL言語リファレンス](https://docs.oracle.com/cd/F39414_01/sqlrf/index.html)のバッカス正規形構文に見つけたのバグ一覧。
バッカス正規形構文は[SQL言語リファレンスのバッカス正規形構文のページ](https://docs.oracle.com/cd/F39414_01/sqlrf/Backus-Naur-Form-Syntax.html#GUID-A4C08C40-8E2B-43F9-A2AA-9953288D4230)に則っている。

# バッカス正規形構文が下書きのまま公開されている

- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/alter_add_cache_clause.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/alter_drop_cache_clause.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/con_id_to_guid.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/con_id_to_uid.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/level_group_type.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/memoptimize_write_clause.html


# かっこの誤用

## かっこの誤用1 中かっこを使うべきところを、かっこを使っている

[Description of add_delete_secret_seps](https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/add_update_secret_seps.html)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71468/fcae3cff-76be-aff4-0d87-60c38f563fc7.png)
上記の(ADD | UPDATE)はADD UPDATEの何れか片方が選ばれる事を表す。
バッカス正規形構文では'('と')'に文法上の意味は無いため、'(' ')'という文字を表すことになる。
正しくはかっこ内の項目のうち、1つが必須であることを表す中かっこ'{' '}'がかっこの代わりに使われるべき。

下記のページで確認している。

- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/add_meas_clause.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/add_update_secret_seps.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/append_op.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/append_op.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/create_analytic_view.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/create_attribute_dimension.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/create_cluster.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/create_context.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/create_hierarchy.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/create_indextype.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/create_materialized_vw_log.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/create_operator.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/drop_constraint_clause.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/identity_options.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/insert_op.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/json_on_error_clause.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/json_parameters.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/json_query_column.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/json_query_returning_clause.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/json_relative_object_access.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/json_transform_returning_clause.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/json_value_on_mismatch_clause.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/json_value_return_type.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/keep_op.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/logical_replication_clause.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/pdb_settings_clauses.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/remove_op.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/rename_op.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/replace_op.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/set_op.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/to_char_char.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/identity_options.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/prediction_analytic.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/prediction_set_analytic.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/prediction_prob_analytic.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/drop_constraint_clause.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/approx_sum.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/create_pmem_fs.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/prediction_cost_analytic.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/prediction_details_analytic.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/component_actions.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/convert_database_clause.html


## かっこの誤用2 偶然)...となって安心し中かっこ/大かっこが抜けている

[Description of the illustration alter_java.eps](https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/alter_java.html)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71468/d3a7632a-95f6-6b12-9232-2356b894f999.png)

4行目の下記は、かっこで囲まれたmatch_stringを複数指定できる事を表している。

> ( match_string [, ] { schema_name | - } )...

しかしこの記載では繰り返されるのは閉じかっこ記号のみ。
正しくは、中かっこで囲みこう書くべき。

> { ( match_string [, ] { schema_name | - } ) }...

下記のページで確認している。

- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/alter_java.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/array_dml_clause.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/create_java.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/json_storage_clause.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/list_partitionset_desc.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/range_partitionset_desc.html 

## かっこの誤用3 混同している上カンマが抜けている

[Description of the illustration attr_dim_using_clause.eps](https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/attr_dim_using_clause.html)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71468/8a6b3ceb-350d-b959-5c4b-719918b2ad1b.png)

- source_clause を、,区切りで複数繰り返せる事を示す意図。繰り返しの指定に中かっこの代わりに誤ってかっこを使っている。加えて、区切り文字の,の記載が無い。

下記で確認している。

- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/attr_dim_using_clause.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/application_clauses.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/drop_constraint_clause.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/json_storage_clause.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/list_partitionset_desc.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/range_partitionset_desc.html 

## かっこの誤用4 かっこをエスケープして使っている

[Description of the illustration drop_constraint_clause.eps](https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/drop_constraint_clause.html)
かっこを中かっこと混同して文法上の意味が有ると誤解し、文字の中かっこを表現するためにエスケープしている。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71468/8991c4f5-d4b0-9541-f044-d398777fc9e0.png)

下記で確認している。

- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/add_meas_clause.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/checksum.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/drop_constraint_clause.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/drop_constraint_clause.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/json_scalar.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/result_cache_clause.html 

## かっこの誤用5 不要なかっこ

[Description of JSON_value_on_mismatch_clause](https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/json_value_on_mismatch_clause.html)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71468/e0c33ac8-6026-b687-94ff-256c56441d42.png)
最後から2行目のMISSING DATA、EXTRA DATA、TYPE ERRORはかっこで囲う必要は無い。また、囲ってはいけない。

下記で確認している。

- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/json_value_on_mismatch_clause.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/json_parameters.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/identity_options.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/hier_id.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/drop_constraint_clause.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/create_pmem_fs.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/prediction_ordered.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/json_value_return_type.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/partitioning_storage_clause.html

## かっこの誤用6 中括弧が抜けている

[Description of JSON_value_on_mismatch_clause](https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/json_value_on_mismatch_clause.html)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71468/e0c33ac8-6026-b687-94ff-256c56441d42.png)
最後から2行目は、中括弧が抜けている。
こうなるべき。

>    [  ( { **MISSING DATA** | **EXTRA DATA** | **TYPE ERROR** } )  ]

下記で確認している。

- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/hier_id.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/json_value_on_mismatch_clause.html
- https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/img_text/advanced_index_compression.html
- https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/img_text/alter_dimension.html
- https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/img_text/array_step.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/clause_options.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/clustering_columns.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/component_actions.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/controlfile_clauses.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/last_value.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/lob_storage_parameters.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/modify_external_table_properties.html


## かっこの誤用7 開き/閉じかっこそれぞれを[ ]で囲っている
[Description of the illustration key_clause.eps](https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/key_clause.html)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71468/c9046166-088f-d01c-5950-98c90ac567b9.png)

- 開きかっこ、閉じかっこそれぞれを[ ] で囲ってしまっているため、開きかっこだけ有り閉じかっこは無いといった不整合を許してしまう。

下記で確認している。

- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/key_clause.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/dim_key.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/alternate_key_clause.html



## かっこの誤用8 大かっこを使うべきところを、中括弧を使っている
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71468/10030669-6224-911a-1b10-08c37162a409.png)

- 4行目の中括弧は大かっこが正しい。

下記で確認している。

- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/create_tablespace_set.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/database_logging_clauses.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/individual_hash_partitions.html

## かっこの誤用9 大かっこが抜けている
[Description of inline_external_table_properties](https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/inline_external_table_properties.html)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71468/0642eb85-3537-fe1e-ca84-bc8add8581c4.png)

下記で確認している。
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/inline_external_table_properties.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/lead_lag_clause.html


# その他の[SQL言語リファレンスの記載ルール](https://docs.oracle.com/cd/F39414_01/sqlrf/Backus-Naur-Form-Syntax.html#GUID-A4C08C40-8E2B-43F9-A2AA-9953288D4230)違反

## キーワード以外も強調されてしまっている

[Description of the illustration enable_disable_volume.eps](https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/enable_disable_volume.html)
  下記で縦線が強調されているように、キーワードではない部分も強調されてしまっている。

下記で確認している。

- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/add_volume_clause.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/alter_flashback_archive.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/alter_xmlschema_clause.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/compound_expression.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/create_flashback_archive.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/create_restore_point.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/cube_table.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/disk_online_clause.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/diskgroup_availability.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/enable_disable_volume.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/flashback_archive_retention.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/lob_compression_clause.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/lob_storage_clause.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/nested_table_col_properties.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/partitioning_storage_clause.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/pdb_close.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/timeout_clause.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/truncate_cluster.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/truncate_table.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/varray_storage_clause.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/xmlquery.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/xmltype_storage.html 

## キーワードの強調漏れ
[Description of the illustration enable_disable_volume.eps](https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/enable_disable_volume.html)

- キーワードの強調漏れ
  VOLUMEが強調されていない。
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71468/99d9a42b-2e16-c7f1-9496-479818614dab.png)

下記で確認している。
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/add_update_secret_seps.html
-  https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/partitioning_storage_clause.html

## 繰り返しの中でカンマが抜けている
[Description of the illustration alter_datafile_clause.eps](https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/img_text/alter_datafile_clause.html)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71468/c10cff88-5cd8-4ad1-9da9-83d5dff05e69.png)

- 3行目のfilenumberの前の,が抜けている

下記で確認している。
- https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/img_text/alter_datafile_clause.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/clause_options.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/create_datafile_clause.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/modify_column_clauses.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/partial_database_recovery.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/pdb_datafile_clause.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/pdb_general_recovery.html




# 誤ったエスケープ

## ドットを誤ってエスケープしている

[Description of JSON_relative_object_access](https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/json_relative_object_access.html)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71468/c3f74d0f-a9f4-a250-d567-4c5a1700d084.png)

下記を確認している。

- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/hier_id.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/json_relative_object_access.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/nested_clause.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/source_clause.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/sub_av_clause.html 
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/wildcard.html 

## カンマを誤ってエスケープしている

[Description of nested_clause](https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/nested_clause.html)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71468/94437585-0748-5a5a-dc53-ac67d3ec6dca.png)

下記で確認。

- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/nested_clause.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/inline_external_table.html

## アスタリスクを誤ってエスケープしている

[Description of wildcard](https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/wildcard.html)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71468/88411968-ec3f-65c0-f370-be8ac9eb2850.png)



確認できているのはこのページのみ。

## 等号を誤ってエスケープしている

[Description of the illustration create_analytic_view](https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/create_analytic_view.html)

下記で確認している。

- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/create_analytic_view.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/create_attribute_dimension.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/create_context.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/create_cluster.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/create_hierarchy.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/create_indextype.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/create_materialized_vw_log.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/create_operator.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/pdb_settings_clauses.html

## セミコロンを誤ってエスケープしている

[Description of drop_pmem_filestore](https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/drop_pmem_fs.html)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71468/578c9b32-ee12-dcc3-b4be-65850441f4c1.png)

## コロンを誤ってエスケープしている

[Description of regular_entry

](https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/regular_entry.html)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71468/b8112ccc-23da-9eb0-2898-b7932ea8953f.png)

下記で確認。

- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/regular_entry.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/modify_external_table_properties.html

## シングルクォートを誤ってエスケープしている

[Description of the illustration pdb_settings_clauses.eps](https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/pdb_settings_clauses.html)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71468/bb8a01b5-9b46-d39a-3563-fba8ad59e776.png)

下記で確認

- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/pdb_settings_clauses.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/modify_external_table_properties.html

## かっこを誤ってエスケープしている

下記で確認

- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/modify_external_table_properties.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/inline_external_table.html

# Oracleの文法に適していない

## 中括弧を開くor閉じる位置が間違っている
 [Description of the illustration advanced_index_compression.eps](https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/advanced_index_compression.html)

> { **COMPRESS ADVANCED** [ **LOW** | **HIGH** ] } | **NOCOMPRESS**

- 中かっこを閉じる位置が間違っている。
  COMPRESS ADVANCED・・・もしくは NOCOMPRESS のどちらか片方が必須。なので閉じる位置はNOCOMPRESSの前ではなく下記のように後で閉じるのが正しい。

> { **COMPRESS ADVANCED** [ **LOW** | **HIGH** ]  | **NOCOMPRESS**}

下記で確認。
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/advanced_index_compression.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/dim_key.html



## 繰り返しの表記が抜けている

下記で確認。

- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/modify_external_table_properties.html

## [Description of the illustration add_disk_clause.eps](https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/add_disk_clause.html)

> **ADD**
> { **SITE** sitename [ **QUORUM** | **REGULAR** ] [ **FAILGROUP** failgroup_name ]
> **DISK** qualified_disk_clause [, qualified_disk_clause ]...
> }...

**SITE** sitenameの指定は、その他の指定と独立して任意なので中かっこはおかしい。
ただし最後の繰り返しを受けるために中かっこは必要。

> **ADD**
> { [ **SITE** sitename ] [ **QUORUM** | **REGULAR** ] [ **FAILGROUP** failgroup_name ]
> **DISK** qualified_disk_clause [, qualified_disk_clause ]...
> }...





## かっこ/中括弧/大かっこが余計
[Description of the illustration alter_index](https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/alter_index.html) 

><span class="bold">ALTER INDEX</span> [ schema. ] index_name [ index_ilm_clause ]
>{ { deallocate_unused_clause
>| allocate_extent_clause
>| shrink_clause
>| parallel_clause
>| physical_attributes_clause
>| logging_clause
>| partial_index_clause
>} ...
>| rebuild_clause
>| <span class="bold">PARAMETERS</span> ( 'ODCI_parameters' )
>)
>| <span class="bold">COMPILE</span>
>| { <span class="bold">ENABLE</span> | <span class="bold">DISABLE</span> }
>| <span class="bold">UNUSABLE</span> [ <span class="bold">ONLINE</span> ] [ { <span class="bold">DEFERRED</span> | <span class="bold">IMMEDIATE</span> } <span class="bold">INVALIDATION</span> ]
>| <span class="bold">VISIBLE</span> | <span class="bold">INVISIBLE</span>
>| <span class="bold">RENAME</span> <span class="bold">TO</span> new_name
>| <span class="bold">COALESCE</span> [ <span class="bold">CLEANUP</span> ] [ ONLY ] [ parallel_clause ]
>| { <span class="bold">MONITORING</span> | <span class="bold">NOMONITORING</span> } <span class="bold">USAGE</span>
>| <span class="bold">UPDATE BLOCK REFERENCES</span>
>| alter_index_partitioning
>}
>;

- 12行目の")" が余計。

下記を確認。
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/alter_index.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/create_attribute_dimension.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/create_datafile_clause.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/create_hierarchy.html
- https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/create_rollback_segment.html

## [Description of the illustration alter_datafile_clause.eps](https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/img_text/alter_datafile_clause.html)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71468/c10cff88-5cd8-4ad1-9da9-83d5dff05e69.png)
- 3行目のfilenumberの前の,が抜けている
- 4行目の閉じ中括弧が不要


## [Description of alter_pmem_filestore](https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/alter_pmem_fs.html)

> ALTER PMEM FILESTORE  filestore_name
> (
> [ RESIZE size_clause ]  |  autoextend_clause 
> | ( MOUNT [ { MOUNTPOINT file_path | BACKINGFILE file_name } ] [ FORCE ] )
> | DISMOUNT
> ) 

- 2行目と最終行のかっこは中かっこの誤り
  [ RESIZE size_clause ]略と、MOUNT略と、DISMOUNT略の何れか一つが選ばれるべき。
  かっこはただのかっこという文字でしかなく、かっこ内の項目のうち、1つが必須であることを表す中かっこが正しい。
- MOUNTの前と [FORCE] の後のかっこは不要
  この記載だとMOUNTから[FORCE]までをかっこが囲んでいるとなっているが、そうではない。
  よってMOUNTの前と [FORCE] の後のかっこは不要。

## [Description of the illustration alter_system_set_clause.eps](https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/alter_system_set_clause.html)

> { set_parameter_clause
> | **USE_STORED_OUTLINES** = (**TRUE** | **FALSE** | category_name)
> | **GLOBAL_TOPIC_ENABLED** = (**TRUE** | **FALSE**)
> }

- TRUE|FALSEを囲うかっこは中かっこの誤り
  [バッカス正規形構文の文法](https://docs.oracle.com/cd/F39414_01/sqlrf/Backus-Naur-Form-Syntax.html)においてかっこはただのかっこ文字でしかない。

## [Description of the illustration pdb_close](https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/pdb_close.html)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71468/a49f1456-ed69-75a4-4aee-3576d6efdc84.png)

- 先頭と末尾の中かっこが不要

- [IMMEADIAGE]・・・と[ABORT]・・・のどちらかを選ばせるために下記のように中かっこが必要

  > **CLOSE** { [ **IMMEDIATE** ] [ instances_clause | relocate_clause ]
  > &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;     | [ **ABORT** ] [ instances_clause ] }

## [Description of application_clauses](https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/application_clauses.html)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71468/52546651-4cdc-b60a-c906-5f95473e5708.png)

- 最後から2行目の/が不要

## [Description of add_external_partition_attrs
](https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/add_external_partition_attrs.html)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71468/083a7141-219e-c016-3589-e69586f4f6a3.png)
- 最後のpreが不要

## [Description of the illustration partitioning_storage_clause.eps](https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/partitioning_storage_clause.html)

json_storage_clauseの記載が抜けている

# 図形構文図も間違っている

## [Description of result_cache_clause](https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/result_cache_clause.html)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71468/5c4388f2-f1bc-870e-e082-82a73fbf000a.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71468/e8fac44b-052f-44ae-c5c2-da43949323fa.png)

- バッカス正規形構文の1行目でかっこがエスケープされている
  かっこはバッカス正規形構文ではただの文字なのでエスケープ不要。
- 2行目と4行目の開きかっこと閉じかっこが不要
- 図形構文図の開きかっこと閉じかっこが対応していないので、図形構文図は間違っている。
- どちらか片方を選ばせる中かっこのつもりでかっこを誤用している
- バッカス正規形構文と図形構文図の両方で、MODE {DEFAULT|FORCE}と , STANDBY {ENABLE|DISABLE}がそれぞれ任意になっている。これだと前者を指定せず後者だけ指定可能で、その場合に,から始まる構文となってしまう。
- 同様に、STANDBY {ENABLE|DISABLE}と, MODE {DEFAULT|FORCR}もそれぞれ任意になってしまっている。

正解は例えばこうではないだろうか。

> **RESULT_CACHE**  ( { 
> [ **MODE** {**DEFAULT** | **FORCE**}  [ , **STANDBY** {**ENABLE** | **DISABLE**} ] ]
> |
> [ **STANDBY** {**ENABLE** | **DISABLE**} [ , **MODE** {**DEFAULT** | **FORCE**} ] ]     
> } ) 



# バッカス正規形構文と図形構文図で書いていることが違う

- [Description of the illustration create_materialized_vw_log.eps
  
  ](https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/create_materialized_vw_log.html/)
  WITHのあたりからしばらく、記載が乖離している。
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71468/00be7cf1-a93b-6ff7-e053-940cfe15d1bd.png)
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71468/b9913014-5590-3280-3bb1-a08bb8d0bc3d.png)
- [Description of json_array
  
  ](https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/json_array.html)
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71468/48ddb055-6294-c680-1b15-87f6c28b0b97.png)
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71468/fce7b05b-e45c-9688-0451-833878c4a755.png)

# バッカス正規形構文のフォーマットのミス

## バッカス正規形構文の冒頭に構文名が入っている

[Description of JSON_value_on_mismatch_clause](https://docs.oracle.com/cd/F39414_01/sqlrf/img_text/json_value_on_mismatch_clause.html)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71468/e0c33ac8-6026-b687-94ff-256c56441d42.png)