アプリケーションプログラミングインターフェイスガイド> Webサービスオペレーション> オペレーションリファレンス> executeNativeSql
 
executeNativeSql
提供されたsqlTextをdataSourcePathのデータソース内で直接実行します。これは、SQLの直接送信をサポートするデータソースでのみ使用できます。これは、公開されたデータサービスでは使用できません。
「isBlocking」がTRUEに設定されている場合、このオペレーションは、実行に関連付けられた処理が完了し、「result」エレメントが設定されるまで戻りません。
FALSEに設定すると、実行に関連する処理が完了するとこのオペレーションが返されますが、「結果」エレメントにデータが入力されるのを待つことはありません。
includeMetadataがTRUEの場合、応答にはメタデータエレメントが含まれます。メタデータエレメントは、結果、この呼び出し、または後のgetTabularResultの呼び出しで返される列データの名前とタイプを記述します。
maxRowsが設定されている場合、結果には最大でmaxRowsの行数が含まれます。 maxRowsが使用可能なデータの行の総数よりも少ない場合、残りの使用可能なデータを取得するには、getTabularResultへの追加の呼び出しを行う必要があります。結果でhasMoreRowsエレメントを使用して、追加のデータが使用可能かどうかを判別します。これは、サーバーがmaxRowsより少ない数を返すことを選択する可能性があるため、maxRowsで返される行数を比較するよりも正確です。
ユーザーまたはグループが設定されている場合、システムテーブルに対するクエリは、これらのリストのユーザーおよびグループがアクセスできるリソースを返します。それらが設定されていない場合、システムテーブルクエリは現在のユーザーがアクセスできるリソースを返します。これらのパラメータを設定するには、現在のユーザーにREAD_ALL_RESOURCES権限が必要です。
応答では、実行に関連するすべての結果が使い果たされた場合、completedエレメントはTRUEを返します。
完了したエレメントは、考えられるすべての結果が取得されたかどうかを報告します。 requestStatusエレメントは、実行に関連付けられたサーバー要求のステータスを報告します。リクエストのステータスは、次のいずれかになります。
STARTED:リクエストが開始されました。リクエストは作成されましたが、まだ実行されていません。
WAITING:サーバーが要求を処理するために、要求はキューで待機しています。
実行中:リクエストは現在サーバーによって実行されています。
completed:リクエストに関連付けられた実行が完了しました。結果を取得できるようになりました。
CLOSING:リクエストは終了します。
SUCCESS:リクエストは正常に終了しました。
FAILURE:リクエストは失敗して終了しました。
TERMINATED:リクエストは終了しました。
このオペレーションに関連するすべてのシステムリソースは、呼び出しを含むトランザクションが完了すると閉じられます。これは、resultIdが、この実行オペレーションを呼び出したトランザクションの外部で使用された場合、無効であることを意味します。 resultIdを使用する場合は、このexecuteオペレーションの呼び出しと、resultIdを使用するすべてのオペレーションを明示的なトランザクションで囲む必要があります。
このオペレーションを呼び出すことができるのは、ACCESS_TOOLS権限を持つユーザーのみです。
ロケーション
/services/webservices/system/admin/execute/operations/
リクエストエレメント
sqlText:実行するSQL。
isBlocking:TRUE(デフォルト)の場合、実行が完了するまで戻らないでください。
includeMetadata(オプション):TRUEの場合、応答には列名とそのタイプに関する情報が含まれます。デフォルトはFALSEです。
skipRows(オプション):結果を生成する前に実行出力でスキップする行数。設定されていない場合、行はスキップされません。設定されている場合、指定された行数は、結果を返す前に実行出力でスキップされます。 skipRowsが可能な行の総数よりも大きい場合、行は返されません。
maxRows(オプション):返される行の最大数。設定されていない場合、すべての行が返されます。
ConsumerRemainingRows(オプション):設定してTRUEの場合、maxRows以降の残りのすべての行が消費されます。
users:(オプション)システムテーブルクエリの場合、このリストに含まれるユーザーがアクセスできる結果を返します。各ユーザーは、名前とオプションのドメインで指定されます。
groups:(オプション)システムテーブルクエリの場合、このリストに含まれるグループがアクセスできる結果を返します。各グループは、名前とオプションのドメインで指定されます。
dataSourcePath:データソースへのパス。
応答エレメント
completed:TRUEの場合、実行に関連するすべての処理が完了しています。
requestStatus:実行を実行しているサーバーリクエストのステータス。
メタdata(オプション):結果内の列名とタイプをリストするテーブルメタデータ。
column:列エレメントを参照してください。
rowsAffected(オプション):既知の場合、実行によって影響を受ける行の数(それ以外の場合は未設定)。これには、スキップされた(skipRowsエレメントを参照)または消費された(consumedRemainingRowsエレメントを参照)行の数が含まれます。
結果(オプション):結果データ。
hasMoreRows:テーブルに影響を受ける数(上記のrowsAffected)よりも多くの行がある場合はTRUE。
totalRowCount:テーブル内の行の総数。
row:各行の型と値のペア。
resultId:サーバー内の結果へのハンドル。この実行オペレーションを呼び出したトランザクション内で使用される場合にのみ有効です。
これは、getTabularResultおよびcloseResultで使用します。
requestId:実行に関連付けられたサーバー要求ID。
エラー解析
IllegalArgument:いずれかのエレメントが不正な形式である場合。
NotAllowed:データソースがSQL実行をサポートしていない場合。
NotFound:指定されたパスのデータソースが存在しない場合。
RuntimeError:実行中にエラーが発生した場合。
セキュリティ:ユーザーがACCESS_TOOLS権限を持っておらず、データソースに対するREAD、WRITE、およびその他の適切な権限を持っていない場合。