問題タブ [oracle11g]

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 投票する
3 に答える
1335 参照

sql-server - 大規模データベースでのデータ相関

私たちは、データ ポリシーに準拠させるために、企業全体に保存されている特定の情報の場所を特定しようとしています。ファイル側では、Nessus を使用してさまざまなファイルを検索していますが、データベース側については疑問に思っています。

Nessus を使用することは、生データを出力し、それがどのテーブルまたは行にあったかを教えてくれなかったり、特にこれらのデータベースが非常に大きい (数百ギガバイト) ことを考えると、有用な情報を提供してくれなかったりするため、ほとんど無意味に思えます。

また、注目に値するのは、このシステムがパターンベースのマッチング (正規表現の使用など) を実行できる必要があることです。単なる「ばかげた検索」エンジンではありません。

このデータを見つけるために、データ マイニングとデータ ウェアハウスの使用を調査しましたが、実際にはデータを見つけるだけではなく、データの分析を目的としているようです。

データベース内の大量のデータを検索して、この情報を見つけようとするより良い方法はありますか? Oracle 11g と SQL Server 2008 の両方を使用しており、両方で検索を実行する必要があるため、サーバー固有のパラダイムから離れたいと思います (ただし、T-SQL から PL に変換するためにコードを書き直す必要がある場合) /SQL、またはその逆、気にしません)

0 投票する
8 に答える
70777 参照

sql - Oracle エラー ORA-01790 を解決するにはどうすればよいですか?

「ユニオン」で結合された2つの選択ステートメントがあります。そのステートメントを実行している間、私は持っています:

エラー レポート: SQL エラー: ORA-01790: 式は、対応する式 01790 と同じデータ型である必要があります。00000 - "式は、対応する式と同じデータ型である必要があります"

この問題を診断する方法についてアドバイスをいただけないでしょうか。

0 投票する
9 に答える
4664 参照

sql - Oracleのバグ?SELECTは重複を返しません。SELECTからのINSERTには重複する行があります

作業中のOracleインスタンスから奇妙な動作が発生します。これはItanium上の11gR1であり、RACはなく、特別なものはありません。最終的には、データウェアハウスのシナリオで、あるOracleインスタンスから別のインスタンスにデータを移動します。

DBリンク上で実行されている半複雑なビューがあります。大規模なテーブルに対する4つの内部結合と、中規模のテーブルに対する5つの左側の結合。

問題は次のとおりです。SQLDeveloper(またはSQL * Plus)でビューをテストすると、問題はなく、重複はまったくありません。ただし、実際にビューを使用してデータをテーブルに挿入すると、多数の重複が発生します。

編集:-データは空のテーブルに入ります。クエリ内のすべてのテーブルはデータベースリンク上にあります。クエリに渡されるのは日付だけです(たとえば、INSERT INTO target SELECT * FROM view WHERE view.datecol = dQueryDate)-

ビューのPKでパーティション化されたROW_NUMBER()関数をselectステートメントに追加してみました。すべての行は1として番号が付けられて戻ってきます。ただし、挿入として実行された同じステートメントは、以前と同じ重複を生成し、現在は便利な番号が付けられています。重複した行の数は、キーごとに同じではありません。一部のレコードは4回存在し、一部は1回だけ存在します。

私はこれが行動に非常に当惑していると思います。:) SETテーブル(一意の行のみ)とMULTISETテーブル(重複行が許可されている)があるTeradataでの作業を思い出させますが、Oracleにはそのような機能はありません。

行をクライアントに返すselectは、それらの行を別の場所に挿入するselectと同じように動作する必要があります。これが起こる正当な理由を想像することはできませんが、おそらく私は想像力の失敗に苦しんでいます。;)

他の誰かがこれを経験したのか、それともこのプラットフォームのバグなのかしら。

解決

@Garyのおかげで、「EXPLAIN PLAN FOR {my query};」を使用して、この問題を解決することができました。および「SELECT*FROM TABLE(dbms_xplan.display);」。実際にINSERTに使用される説明は、SELECTとは大きく異なります。

SELECTの場合、ほとんどのプラン操作は「INDEXROWIDによるTABLEACCESS」および「INDEXUNIQUESCAN」です。'Predicate Information'ブロックには、クエリからのすべての結合とフィルターが含まれています。最後に「注-完全にリモートステートメント」と表示されます。

INSERTの場合、インデックスへの参照はありません。「述語情報」ブロックはわずか3行で、新しい「リモートSQL」ブロックには9つの小さなSQLステートメントが表示されます。

データベースは私のクエリを9つのサブクエリに分割し、それらをローカルで結合しようとします。小さい方の選択を実行することで、重複のソースを見つけました。

これは、リモートリンクに関するOracleコンパイラのバグだと思います。SQLを書き直すときに論理的な欠陥が発生します。基本的に、コンパイラはWHERE句を適切に適用していません。私はちょうどそれをテストしていて、持ち帰るための5つのキーのINリストを与えました。SELECTは5行を戻します。INSERTは、77,000以上の行をターゲットに配置し、INリストを完全に無視します。

{正しい動作を強制する方法をまだ探していますが、開発の観点からは理想的ではありませんが、リモートデータベースにビューを作成するように依頼する必要があるかもしれません。動作するようになったら編集します…}

0 投票する
5 に答える
2296 参照

sql - Oracleテーブルにメタデータを入れてHTML改行を生成する方法

すべてのメタデータが Oracle テーブルに格納される CRM ソリューションがあります (理由は聞かないでください)。

更新ステートメントを発行していますが、データベースからデータを取得すると、フロントエンドに '\n' が改行ではなくテキストの一部として表示されます (HTML の のように<br/>)。

説明に直接入れようとしました
が、フロントエンドでは br/ と表示されます。

代わりに、更新ステートメントにどのエスケープ文字を入れる必要がありますか?

0 投票する
3 に答える
380 参照

oracle - PLSQL と Oracle 11g

Oracle 10g にはかなりの数の PL/SQL コードがあり、11g に移行する予定です。私のコードもそこで動作することを期待していますが、

  • 予想される落とし穴、遭遇した問題はありますか?
  • どのような新機能を使用していますか?
0 投票する
2 に答える
4052 参照

sql - ORACLE 11g で列名を正規化する

スキーマ内の多くのテーブルの列の名前から引用符を削除する必要があります。このプロセスを自動化する方法はありますか?、オラクルの関数、または引用符を削除して列の名前を変更できるツール。私はオラクル11gを使用しています。

アップデート

申し訳ありませんが、質問を言い換える必要がありました。

前もって感謝します。

0 投票する
5 に答える
42668 参照

database - Oracle -- 別の名前のテーブルにデータをインポートしますか?

Oracle テーブルからエクスポートされた大きな (数 GB) データ ファイルがあります。このデータを別の Oracle インスタンスにインポートしたいのですが、元のテーブルとは異なるテーブル名を使用したいと考えています。これは可能ですか?どのように?

インポート システムとエクスポート システムの両方が Oracle 11g です。これにより違いが生じる場合、テーブルには BLOB 列が含まれます。

ありがとう!

更新:

ここでのアイデアは、テーブルを使用しているシステムのダウンタイムを最小限に抑えながら、テーブルを更新することでした。解決策 ( Vincent Malgratの回答とAPCの更新に基づく) は次のとおりです。

  1. テーブル名がA
  2. 一時スキーマを作成するTEMP_SCHEMA
  3. 私たちのデータをにインポートしますTEMP_SCHEMA.A
  4. CREATE REAL_SCHEMA.B AS SELECT * FROM TEMP_SCHEMA.A
  5. DROP TABLE REAL_SCHEMA.AREAL_SCHEMA.Aに名前を変更REAL_SCHEMA.A_OLD
  6. REAL_SCHEMA.Bに名前を変更REAL_SCHEMA.A
  7. DROP REAL_SCHEMA.A_OLD

このように、ダウンタイムはステップ 4 と 5 の間のみであり、どちらもデータ サイズとは関係ありません。これが機能しない場合は、ここに更新を投稿します:-)

0 投票する
4 に答える
32902 参照

oracle - デフォルトでは、ORACLE11gの大文字と小文字は区別されません

この記事で、ORACLE 10g以降、を使用して、クレイジーなSQL関数を必要とせずに、特定の接続セッションで文字列の大文字と小文字を区別しないようにする方法があることがわかりましたALTER SESSION

ALTER SESSION11gで、すべての新しい接続セッションに対してデフォルトでデータベースを常にこのモードで動作させ、接続するたびにsを実行する必要をなくす方法があるかどうかを誰かが知っていますか?

または、接続文字列に指定して同じものをオンにする追加のパラメータはありますか?

0 投票する
5 に答える
12428 参照

c# - コードによるファイルtnsnames.oraの場所の取得

tnsnames.oraOracleクライアントがインストールされているマシンで、コードによってファイルの場所を取得するにはどうすればよいですか?

このファイルの場所を示すWindowsレジストリキーはありますか?