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"})