11.1.4 その他の関数
Adp.Misc
クラスには、SQL問合せを実行したり、ビューおよび表を操作するための関数が含まれています。
Misc.get_entity_ddl(entity_type, entity_name, owner=None)
前述の関数は、エンティティを作成または置換するためのDDLを所有者のスキーマに生成します(所有者が欠落している場合、またはNone
に設定されている場合は、現在のスキーマが使用されます)。entity_type
には、TABLE
またはVIEW
を指定できます。
Misc.list_tables(owner=None)
前述の関数は表のリストを返します。owner
は表のスキーマ名です。None
は、現在のスキーマが使用されることを意味します。
Misc.list_views(owner=None)
前述の関数はビューのリストを返します。所有者はビューのスキーマ名です。Noneは、現在のスキーマが使用されることを意味します。
Misc.drop_table(table_name)
前述の関数は、表tableName
を削除します。
Misc.drop_view(view_name)
前述の関数は、ビューviewName
を削除します。
Misc.drop_tables(table_names)
前述の関数は、tableNames
リストから表を削除します。
Misc.drop_views(view_names)
前述の関数は、viewNames
リストからビューを削除します。
Misc.run_query(statement, offset=None, limit=None, asof=None)
前述の関数は、問合せの結果を返します。
Misc.global_search(search_string, rowstart, numrow, sortBy=[], hide_system_tables=False, hide_private_tables=False, resultapp=None, resultannotation=None)
前述の関数は、adp_instanceからデータベース、表および別のアーティファクトを検索した結果を返します。
search_string
は、"( owner: ADPTEST ) ( type: TABLE ) ( application: DATABASE )"の形式にする必要があります
Misc.get_table_columns(table_name, owner=None, limit=256, offset=0)
この関数は、スキーマ所有者の表table_name
の列情報のリストを返します。所有者が使用されていない場合、またはNoneと等しい場合、現在のスキーマが使用されます。
Misc.get_table_constraints(table_name, owner=None, limit=256, offset=0)
この関数は、スキーマ所有者の表table_name
の制約のリストを返します。所有者が使用されていない場合、またはNoneと等しい場合、現在のスキーマが使用されます。
Misc.insert_row(table_name, data, mapping=None, owner=None)
この関数は、スキーマ所有者の表table_name
にデータdata
を挿入します。所有者が使用されていない場合、またはNoneと等しい場合、現在のスキーマが使用されます。データの形式は{"data column" : value,...}です。jsonをマッピングする表列とデータ列を照合するには、データに表の列名が含まれている場合は、この引数をスキップします。
Misc.update_row(table_name, data, where_col, mapping=None, owner=None)
この関数は、スキーマ所有者の表table_name
の指定された行からデータdata
を更新します。ownerが使用されていないかNoneと等しい場合、現在のスキーマが使用されます。データの形式は{"data column" : value、...}で、where_col
の値には、where句で使用される列名が含まれます。jsonをマッピングする表列とデータ列を照合するには、データに表の列名が含まれている場合は、この引数をスキップします。
ライトバック関数の例
この項では、ライトバックAPIの使用を開始する際に役立つ次の例を提供します:
- 表の列のリスト
- 表の制約のリスト
- マッピングなしで行を挿入
- マッピングを含む行の挿入
- マッピングなしで行を更新
- マッピングによる行の更新
これらの例を使用する前に、ADPインスタンスを作成してAutonomous Databaseに接続する必要があります。
表の列のリスト
adp_instance.Misc.get_table_columns('PERSONS')
Output:
[
{
"column_name": "PERSON_ID",
"data_type": "NUMBER",
"nullable": "No",
"data_default": "\"ADMIN\".\"ISEQ$$_329201\".nextval",
"column_id": 1,
"comments": null
},
{
"column_name": "FIRST_NAME",
"data_type": "VARCHAR2(50 BYTE)",
"nullable": "No",
"data_default": null,
"column_id": 2,
"comments": null
},
{
"column_name": "LAST_NAME",
"data_type": "VARCHAR2(50 BYTE)",
"nullable": "No",
"data_default": null,
"column_id": 3,
"comments": null
}
]
表の制約のリスト
adp_instance.Misc.get_table_constraints('PERSONS')
Output:
[
{
"constraint_name": "SYS_C0056209",
"constraint_type": "Check",
"search_condition": "\"PERSON_ID\" IS NOT NULL",
...
}
]
マッピングなしで行を挿入
adp_instance.Misc.insert_row('PERSONS',
{"PERSON_ID":1, "FIRST_NAME":"John", "LAST_NAME":"Smith"})
マッピングを含む行の挿入
最後のパラメータは、列の別名と列名のマッピングです。adp_instance.Misc.insert_row('PERSONS', {"ID":1, "FIRST":"John", "LAST":"Smith"},
{"ID":"PERSON_ID", "FIRST":"FIRST_NAME", "LAST":"LAST_NAME"})
マッピングなしで行を更新
adp_instance.Misc.update_row('PERSONS',
{"PERSON_ID":1, "FIRST_NAME":"Adam"}, 'PERSON_ID')
Where_col
文字列は、問合せ内のwhere句を<where_col> = <value>
という形式で構築する別名です。<value
>は、データ内の対応する項目の値です。
マッピングによる行の更新
最後のパラメータは、列の別名と列名のマッピングです。Where_col
文字列は、問合せ内のwhere句を<where_col> = <value>
という形式で構築する別名です。<value>
は、データ内の対応する項目の値です。
adp_instance.Misc.update_row('PERSONS', {"ID":1, "FIRST":"Adam"}, 'ID', {"ID":"PERSON_ID", "FIRST":"FIRST_NAME"})