問題タブ [oracle-xml-db]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
5314 参照

oracle - 複数項目のシーケンスを取得しました

私の意図は、「コンテナ番号が入力データと等しいデータを選択する」ことです(一種の検索機能)。データを取得しようとしているときに問題に直面しています。 where 条件に問題があります。

ここでは、複数のデータを取得しています。where 条件で反復する方法がわかりません。

私のクエリは次のとおりです。

私のソース XML は次のとおりです。

sealId が 5678 であるすべての宣言を選択するにはどうすればよいですか? この場合、where 条件をどのように処理しますか?

0 投票する
1 に答える
45 参照

java - タグの配列を持つ複合型の where 条件を記述できない

私はXMLデータベースに不慣れで、transportEquipmentのidにwhere条件を書き込んでいるときに問題に直面しています。

私のxmlは:

データベースから取得した以下のxml。この xml には、id に where 条件を記述する必要がある transportequipment の複数の id があります。localreferencenumber や identifier などの where 条件を記述できます。しかし、transportEquipment の「id」への書き込みに失敗しました。bcz ここではこれらが多数あります。

そして、以下のクエリに where 条件を追加できません

0 投票する
1 に答える
165 参照

sql - サブセレクト解析結果オラクルを選択

一時抽出 :

ACH_ADDENDA:

-- これはテーブル A (トランザクション タイプ 1) の一時テーブルの値に対してローカルである必要がありますが、xml ではトランザクション タイプ 2 の出力にも表示されます。whereクエリを使用してそのサブセレクトをローカルにするにはどうすればよいですか? 御時間ありがとうございます。

出力は次のとおりです。

PMTRELINFO は、2 番目のトランザクションではなく、最初のトランザクションに適用されます。

0 投票する
1 に答える
2079 参照

sql - ExtractValue/xml シーケンス

抽出する小さなデータに対しては正常に機能する次のコードがありますが、より大きなサイズのレコードに遭遇するとエラーになります。ORA-01706: user function result value was too large エラーを回避するにはどうすればよいですか?

お時間をいただきありがとうございます!

0 投票する
1 に答える
2023 参照

xml - ORA-00937: 単一のグループ関数ではありません(XMLAGG)

単一の行で集計関数を使用しXMLAGGましたが、エラー コード ORA-00937 が引き続き発生します。なんで?

レポートの構造は次のとおりです。

私の選択ステートメントは次のとおりです。

0 投票する
1 に答える
999 参照

oracle - Oracle PL/SQL Web サービスで XMLTYPE を使用できない

Oracle PL/SQL パッケージを Oracle 11g (11.2.0.2.0) の Web サービスとして提供しようとしています。他のすべては順調に進んでいますが、Web サービスで XMLTYPE を使用するプロシージャ/関数を使用する際に問題があるようです。XMLTYPE が Oracle Web サービスでサポートされていない場合、またそのような制限を示すリソースが見つからない場合、私は非常に驚くでしょうが、何か間違ったことをしていると思います。ただし、どこに問題があるのか​​ 、したがって質問がわかりません。

Oracle 11g リリース 1 のネイティブ Oracle XML DB Web サービスに従って、Oracle データベースにネイティブ Web サービスを構成し、SoapUI を使用して基本的なデータ型で手順をテストすることに成功しました。

問題の他の原因を除外するために、問題を再現する次の最小化されたテスト パッケージを作成しました。

定義済みのプロシージャを SQLPlus で実行すると、うまく動作します。

サービスが構成され、パッケージがデータベースに定義されると、パッケージの WSDL をhttp://host:port/orawsv/DBSCHEMA/WEB_TEST_PACKAGE?wsdlから取得できます。WSDL を使用して、サンプル リクエストを含む SoapUI プロジェクトを作成します。次に、基本認証を使用するように要求を構成し、クエリをテストする準備が整いました。

SoapUI でクエリを実行すると、応答に次のエラーが表示されます。

エラーを正しく解釈すると、select-clause がある行にエラー ORA-00904 "invalid identifier" が表示されます。そして、私の理解では、「XMLTYPE」はその行の唯一の識別子です。つまり、Web サービスを介してプロシージャが実行されたときに認識されません。

最後に質問です。Web サービスを介して呼び出されるプロシージャで XMLTYPE を使用できないという制限はありますか? それとも、ここで何か不足していますか?

念のため、コンストラクタ形式 XMLTYPE(...) をメソッド形式 XMLTYPE.CreateXML(...) に置き換えようとしましたが、役に立ちませんでした。

0 投票する
2 に答える
782 参照

oracle - Oracle XQuery (XMLQuery/XMLTable) での日付の比較

を使用してOracleデータベースにいくつかのチェックを実装しようとしているXQueryときに、2つの日付が同じかどうかを比較する必要がありますが、 へのキャストxs:dateは から値の時間部分を実際に削除しないため、明らかな方法でそれを行うことはできませんxs:dateTime

クエリ自体は、別の環境 (例: http://www.xpathtester.com/xquery ) で適切に機能するようです。

何か重要なことを見逃しているのでしょうか、それともこのケースは単なるバグであり、特別な回避策 (比較のために文字列値に変換する、両方の日付の年、月、日付を別々に比較するなど) が必要ですか?


小さな例...

単純な XML があるとします。

時間部分を無視しdate_valueて固定値と比較したい。xs:date('2015-09-11')

まず、ノードのコンテンツを目的のタイプに変換し、次のようにキャストして時間部分を削除しxs:dateます。

XMLQuery()上記のドキュメントを として渡すときにこの値を選択すると$doc、期待される出力が得られます。

Ok。時間部分が削除されたようですが、比較は失敗します:

を返しますfalse。式の値を比較するのではなく、差を見ようとすると、次のようになります。

'PT15H25M55S'の時間部分と正確に一致する が表示されdate_valueます。

テスト用に上記のすべての式を使用してクエリを実行します。

この Oracle バージョンで再現される動作:


アップデート

collapsarAlex Pooleの回答に感謝します。これにより、正しい回避策についての主なアイデアが得られます。しかし、問題の核心を説明しようとして、いくつかの日付演算と実際の回避策を含むユースケースを単純化しすぎて、以下のクエリのようになります。

0 投票する
0 に答える
1580 参照

sql - Oracle Case Statement とともに XMLElement を実行すると、実行ごとに異なる出力が得られます

これは、実行しようとしているオラクルクエリであり、実行ごとに異なる出力が得られます。最初の実行では正しいxmlリクエストが返され、その後のすべてのリクエストでは null が返されます。また、怖いのは、xml要素名を から"PHONE"に変更する"PHONE1"と、初回のみ、およびNULL後続の要求に対して再び出力が得られることです。

また、(テーブルに存在する同じ値)の値をハードコードするCLI_PHONENUMBERと、常に正しい出力が得られます。

0 投票する
1 に答える
223 参照

database - oracle-xml での XMLElement の使用に関する問題

私はxmlタイプのOracleのテーブルを作成しています(これは初めてです)。テーブルにいくつかのレコードを挿入しました。select ステートメントを使用してテーブルからレコードを取得しようとすると、次のエラーが発生します。

[エラー] スクリプト行: 404-405 ---------------------- ORA-00904: "E"."ENAME": 無効な識別子スクリプト行 404、ステートメント1 行目、25 列目

ステートメントを作成します。

挿入ステートメントの 1 つ

次のステートメントを実行すると、エラーが発生します SELECT XMLELEMENT("Name",e.ENAME) FROM EMPLOYEE_XML e /

注: XMLELEMENT を使用してテーブルからデータを取得する必要があります