機械翻訳について

コード・ブロック

コード・ブロックは、データ・ソース、構造および関係、およびデータ・ロード、リフレッシュおよび削除の指示を定義します。

構文
code_block ::= [ builtin_schema_statement | template_schema_statement ] 
 		rowsource_specification [column_mapping_assignment]... 
 		[ default_row_specification ] 
 		[ aggregate_specification ] 
 		[ primary_key_specification ] 
 		[ entity_id_specification ] 
 		[ incremental_refresh_directive ]
 		[ delete_specification ]...

スキーマ文

例:
builtin_schema_statement | template_schema_statement

スキーマ文の詳細は、「スキーマ定義」を参照してください。

行ソース仕様

構文
rowsource_specification ::= ROWSOURCE { table_source | dataset_source | inline_source }

table_source ::= rowsource_expression

rowsource_expression ::= table_reference join_condition... [ row_filtering_conditional ]

join_condition ::= {join_type table_reference ON join_expr | join_type_cross table_reference }

join_type ::= { INNER | LEFT OUTER | RIGHT OUTER | FULL OUTER } JOIN
join_type_cross ::= CROSS JOIN

join_expr ::= boolean_returned_expression 

row_filtering_conditional ::= WHERE boolean_returned_expression

dataset_source ::= { UNION | UNION-ALL } table_reference_list 
table_reference_list ::= '[ ' table_reference [ , table_reference ]... ' ]'
table_reference ::= table_name | table_alias

inline_source ::= INTABLE '( ' column_and_type inline_value ' )' 
column_and_type ::= '[ ' column_name : data_type [, column_name : data_type ]... ' ]'

inline_value ::= VALUES '( ' row_expression [, row_expression ]... ' )' 
row_expression ::= '[ ' constant_value [, constant_value ]... ' ]’
例: 内部結合
IMPORT SOURCE CUSTOMERS
IMPORT SOURCE COUNTRIES

DEFINE VERSIONED DATASET GAMING_CUSTOMER_REACHED_G
 ROWSOURCE CUSTOMERS INNER JOIN COUNTRIES ON (CUSTOMERS.COUNTRY_ID = COUNTRIES.COUNTRY_ID);
 THIS = COUNTRIES[COUNTRY_REGION,COUNTRY_SUBREGION];
 THIS = CUSTOMERS;
 PRIMARYKEY[CUST_ID];
END

設定操作

セット操作は、2つ以上のデータセットを処理し、それらをROWSOURCEとして単一の結果セットに結合します。
  • 結果の表の構造を定義するには、列マッピングを指定する必要があります。
  • デフォルトの主キーがないため、主キーを指定する場合は明示的に指定する必要があります。
例: UNION
IMPORT SOURCE PRODUCTS
DEFINE DATASET PRODUCTS_D FROM PRODUCTS[PROD_ID,PROD_NAME,PROD_EFF_FROM,PROD_EFF_TO,PROD_VALID] END
DEFINE PRIVATE DATASET PC_PRODUCTS_TMP
 ROWSOURCE PRODUCTS WHERE
 PRODUCTS.PROD_CATEGORY = 'Hardware' AND PRODUCTS.PROD_SUBCATEGORY LIKE '%PCs';
 THIS = PRODUCTS[PROD_ID,PROD_NAME,PROD_CATEGORY_DESC,PROD_LIST_PRICE,PROD_MIN_PRICE];
 THIS[PRIORITY] = 2;
END

DEFINE PRIVATE DATASET CONSOLE_PRODUCTS_TMP
 ROWSOURCE PRODUCTS WHERE PRODUCTS.PROD_SUBCATEGORY_DESC LIKE '%Game%' AND PRODUCTS.PROD_VALID = 'A';
 THIS = PRODUCTS[PROD_ID,PROD_NAME,PROD_CATEGORY_DESC,PROD_LIST_PRICE,PROD_MIN_PRICE];
 THIS[PRIORITY] = 1;
END

DEFINE DATASET ENTERTAINMENT_PRODUCTS_C
 ROWSOURCE UNION[PC_PRODUCTS_TMP,CONSOLE_PRODUCTS_TMP];
 THIS = PC_PRODUCTS_TMP;
 PRIMARYKEY[PROD_ID];
END

INLINEデータ・セット

インライン表は、その構造とデータの両方(事前定義されたレコード・セットを含む)を表定義内に直接定義します。 インライン表を使用して、外部ソースに依存することなく、小さなデータセットをコードに埋め込みます。

例:
DEFINE INLINE DATASET MYINLINEDATA
 ROWSOURCE INTABLE([
    PROMO_CATEGORY_ID:VARCHAR2(128),
    PROMO_CATEGORY:VARCHAR2(60),
    PROMO_DISCOUNT_RATE:BIGDECIMAL(38, 12)]
    VALUES
       ([1 ,'No Promotion',0],
       [2 ,'Television',11.5],
       [3 ,'Internet', 15.4])
    );
PRIMARYKEY[PROMO_CATEGORY_ID];
END

ノート:

VARCHAR2列には、引用符で囲んだり、囲んだりせずに数値を直接挿入できます。