問題タブ [oracle11gr2]
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.
asp.net - リモートORACLEサーバー接続文字列
私はwinxpリモートOracleサーバーとIISを備えたWindows7マシンを持っています。
私はwin7マシンでサイトをホストし、winxpマシンのOracleDBから情報を取得します。
ただし、Webページをロードすると、ORA-12154が表示されます。TNS:指定された接続識別子を解決できませんでした
私のTnsname.Oraに私は次を持っています:
奇妙なことに、WIN7からsqlplusを介して接続しようとすると、次の資格情報を提供することで接続できます。
$ sqlplus MyUser / MyPass @ ORCL
私が持っているConnectionStringは次のとおりです。
誰かが何が間違っているのかについて何か考えがありますか?
接続文字列は、実質的に同じように見えるtnsnames.oraファイルを使用してローカル開発マシンで機能します。
どんな助けでもいただければ幸いです!
oracle - 興味深い Oracle 分析クエリの課題
私は Oracle の分析関数についてはかなりの経験がありますが、これは私を困惑させました。明白な解決策があれば、私は自分自身を蹴ります:)
別のテーブルに挿入、更新、および削除を記録する JOURNAL テーブルがあります。
ジャーナルであるテーブルは BOND_PAYMENTS で、PAYMENTS と BONDS の間のリンクを表します。特定の支払い (PAYMENT_ID で識別) から特定の債券 (BOND_NUMBER で識別) に割り当てられた金額 (AMOUNT) を格納します。さらに、「BON」、「PET」、またはその他のコードである可能性のある、結合のどの側面 (BOP_DOMAIN) に割り当てられたかを記録します。BOND_PAYMENTS テーブルには代理キー (BOP_ID) があります。
したがって、私のジャーナル テーブルには通常、各 BOP_ID に対して 1 つ以上のレコードがあります。最初に INSert、その後におそらくいくつかの UPDates、その後におそらく DELete が続きます。
JOURNAL テーブルは次のとおりです。
サンプルデータは次のとおりです。
ここで、このジャーナル テーブルから完全なデータ セットを抽出する必要がありますが、形式はわずかに異なります。主な要件は、ジャーナル テーブルに BOP_DOMAIN を記録させたくないということです。これは必須ではありません。
各 BOND_PAYMENT レコードの合計金額の履歴を生成する必要があります。BOND_PAYMENT テーブル自体は、各レコードの最新のステータスしか表示されないため、使用できません。ジャーナルからこの情報をマイニングする必要があります。
SUM(amount) over(partition by payment_id, bond_number)
個々の BOP_ID は数回更新される可能性があるため、単に取ることはできません。そのため、いつでも、その BOP_ID について記録された最新の金額のみを使用する必要があります。
上記のサンプル データが与えられた場合、生成されると予想される図を次に示します。
ここでは、2 つのサンプル支払いについて、左側にサンプル データを再現しました。右側には、期待される出力である「Running Total」があります。その横 (赤) は、各行の現在の合計を計算する方法のロジックです。
「現在の合計」は、仕訳入力の時点での、PAYMENT_ID と BOND_NUMBER の組み合わせの合計金額のスナップショットです。特定の BOP_ID が数回更新される可能性があることに注意してください。合計金額は、その BOP_ID の最新のレコードのみを考慮する必要があります。
機能するソリューションはすべて受け入れられますが、分析関数 (または分析関数の組み合わせ) がこれを解決するための最良の方法になると思います。
sql - SQL を使用して集中治療室の赤ちゃんの数を見つける
私はビッグテーブルを持っています:
年間約500病院の診療実績をまとめた表です。約 3 億行あります。
私の質問は:
X 病院ごとに、同じ病院で何人の赤ちゃんが生まれ、そのうち何人が生後すぐに (同じ日に) 集中治療を受けましたか?
たとえば、病院 A では、100 人の赤ちゃんが生まれ、そのうちの 20 人が同じ病院で同じ日に集中治療室に運ばれました。
P619920 は、誕生の操作 ID です。母親のID情報は、赤ちゃんではなく出生時に記録されます。
I552015 は、集中治療の操作 ID です。赤ちゃんのID情報が記録されます。
まず、次の方法で病院 A を隔離しました。
Hospital_A のパターンは次のようになります。
私は一致しようとしました:
a) 赤ちゃんと母親の姓
b) 操作日。
これで20行になりました。
同じクエリを BIGTABLE に適用すると、病院 A には 81 行あります。
この違いは、他の病院で生まれ、同じ日に集中治療のために A 病院に運ばれた赤ちゃんに起因すると理解しています。
BIGTABLE では、パターンは次のようになります。
そのため、BIGTABLE の結果は、病院 B が含まれているため、分離された Hospital_A テーブルとは異なります。
BIGTABLE に対する私のクエリは、同じ病院で発生した同日出産と集中治療の組み合わせを抽出する必要があります。
結果のテーブル:
oracle - DBMS_DATA_MINING.CREATE_MODELにより、11.2.0.1.0 64bでは「ORA-40103:無効なcase-id列:TID」が発生しますが、10gでは問題ありません
バージョン11.2のDBMS_DATA_MINING.CREATE_MODELに問題があります。10gでは、以下のこのコードは問題なく機能します。11.1でも機能すると確信しています。
原因:
念のため:
と
戻り値:
のサンプルコードでdmardemo.sql
も同じエラーが発生します。何が悪いのかわかりません。助けてください。
oracle - 11gクライアントを使用したOracle10gデータベースからのエクスポート
データベースバージョン:10gEnterpriseEditionリリース10.2.0.4.0
クライアントバージョン:11g Enterprise Editionリリース11.2.0.1.0(Windows 7 64ビット)
データベースからテーブルをエクスポート(exp)しようとすると:
次のエラーが発生します。
EXP-00008:ORACLEエラー904が発生しました
ORA-00904: "POLTYP":識別子が無効です
EXP-00000:エクスポートが失敗しました
ネットで調べてみたところ、バージョンの非互換性が問題だとわかりました。
あなたはそれについて私に何をするようにアドバイスしますか?
注:データポンプを使用してエクスポートしようとしましたが、次のようになります。
oracle - 複数のファイルをロードするOracle 11gR2:sqlldrまたは外部テーブル?
合計約100GBの471個のファイルがあります。ファイルは「\t」で区切られており、トランザクション データは次の形式です。
ファイル内のトランザクションの順序は重要であり、理想的には主キー ID を使用して保持する必要があります。最初に、これらのファイルを sqlldr でロードしましたが、非常に時間がかかります。最近、外部テーブルについて学びました。戦略的な観点から、どちらの方法が優れていますか? 外部テーブルはどのように機能しますか? ありがとうございました。
xml - PL SQLを介したXML(ロング変数に格納)の読み取り
Oracle11g2DBを使用しています。Long列/変数にいくつかのxmlコンテンツがあります。
誰かがxml属性値を読むのを手伝ってくれますか?
例えば。
の横の値を読み取りたい<variable name= "L_LPN">
。K01-4713BE
プログラムで戻る必要があります。
oracle - ブロック内のカーソルまたはテーブル列のデータ型の検索
システム テーブルを使用せずにブロック内のカーソルまたは変数の列のデータ型を調べることは可能ですか? システムテーブルを使用してこの情報を見つけることができることは理解していますが、かなり遅くなります。
何かのようなもの、
に頼らずにそれを行う方法を見つけることができませんdbms_sql
。これは、最終的な目的にはやり過ぎです。
しかし、オラクルはすでにすべての情報を手に入れています。varchar2
aを aに代入しようとすると、number
すぐに文句を言うので、データ型が何であるかがわかります。
そして、はい、オラクルのバージョンの数がばかげていることは知っていますが、それは私たちが現時点で持っている量です... 9iは11を支持して間もなく死にますが、答えを見つけることができれば、このコードはすぐに9iで実行されます! しかし、必要に応じてより良い解決策を待つことができるので、11 を含めました。
oracle - SQL*Loader: データ内の区切り文字の処理
SQLLDR を介して Oracle にデータをロードしています。ソースファイルは「パイプ区切り」です。
ただし、一部のレコードでは、セパレータとしてではなく、データにパイプ文字が含まれています。そのため、データパイプ文字をフィールド ターミネータとして認識するため、レコードの正しいロードが中断されます。
この問題を解決するための方向性を教えてもらえますか?
データファイルは約9GBなので、手動で編集するのは大変です。
例えば、
ロードされた行:
ABC|1234567|STR 9 R 25|98734959,32|28.12.2011
拒否された行:
DE4|2346543|WE| 454|956584,84|28.11.2011
エラー:
DATE_N 列が最後の列です。