問題タブ [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.
sql - Oracle 11g での問題クエリ識別の自動化
このテスト ベッドでは、多数のテスト スイートが連続して (無人で) 実行され、後で使用するためのレポートが生成されます。これらのレポートには、さらなる調査の候補となるクエリと、そのリストに含めることを正当化するデータを含めたいと考えています。この方法で識別されたクエリを、それを懸念事項として公開したテスト スイートに関連付けることができるはずです。
SQL Server を使用する場合、これは比較的簡単です。DBCC FREEPROCCACHE を呼び出すと、スイートが開始される前にすべてのカウンターがクリアされます。次に、テストの最後に、sys.dm_exec_query_stats に対してクエリを実行します。これにより、実行回数と最小値にアクセスできます。キャッシュされた各クエリ プランの /max/total time(s)。パラメータ化された SQL ステートメント (mssql インスタンスで FORCED パラメータ化を使用) とクエリ プランを取得するためのフックが使用可能です。
参照: http://msdn.microsoft.com/en-us/library/ms189741%28SQL.90%29.aspx
私の質問: ターゲット アプリが Oracle 11g に接続されている場合、この近似値を実装するにはどうすればよいですか? これまでの私の読書は、私が求めているものはすべて AWR を介して利用可能であり、サポートするビューに直接アクセスできるはずであることを示唆していますが、自分でサークルを閉じることはできませんでした.
sql - ORA-00942 のトラブルシューティング
昨夜の自動テスト実行の途中で、私の 20 のワーカー スレッドのうちの 1 つが吹き飛ばされました。アプリケーションが INSERT を試みていました。Springframework レポート ORA-00942: テーブルまたはビューが存在しません。
エンタープライズ マネージャーを介してデータベース (11.1.0.6.0) に接続し、SQL ワークシートを取得してテーブルにクエリを実行し、(a) テーブルが現在存在していること、(b) 挿入されるべき行が欠落していること (c) を発見しました。 ) このスレッドによって以前に挿入された行が存在する (d) テーブルに時間内のエラーの前後に行があること。
オラクルの経験がほとんどないユーザーの場合、エラーがこのデータベースサーバーで発生したことを確認するにはどうすればよいですか?また、そこからエラーを根本原因に戻すにはどうすればよいですか?
vb.net - TransactionScope とエラー: ORA-02049
私は次のルーチンを持っています:
これを本番環境とテスト環境の両方の Oracle 11g データベースに対して散発的に実行すると (または、パターンがある場合は、まだ見つかっていません)、Oracle エラーが生成されます: ORA-02049: タイムアウト: 分散トランザクションがロックを待機しています。
これはテスト データベースに対して実行される唯一のプロセスであるため、さまざまなユーザーがロックをめぐって競合するという問題は発生しません。
このエラーの原因は何ですか?
前もって感謝します。
sql - Oracle 11g で 2 つの日付間の日数を取得するにはどうすればよいですか?
Oracle 11g で 2 つの日付の間の整数の日数を見つけようとしています。
することで近づくことができます
しかし、これは間隔を返します。これを整数にキャストすることに成功していません。
編集: どうやら 10g では、これは日数を整数として返します。
sql - 行を作成するために結合されたテーブルに基づいて、SQL結果セットの結果にリテラルをどのように配置しますか?
ID列を持つ「スーパータイプ」を表す3つのテーブルがあります。他の 2 つのテーブルはそれぞれサブタイプであり、スーパータイプ テーブルへの外部キーである ID 列と、サブタイプ固有の列があります。
すべてのデータを返すクエリと、行がどのテーブルから来たかを示す識別子として使用できる列が必要です。
たとえば、これを変更するにはどうすればよいですか。
これは私にこれを返します:
次のように、ハードコードされたリテラル値を持つ識別子列を追加するものに:
いかなる方法でもデータ モデルを変更することは許可されていません。また、事後にプログラムで NULLS をテストして、後処理を行うこともできません。テーブルをそのまま使用して、上記の正確な結果セットを生成する必要があります。答えに違いがある場合、私はOracle 11gを使用しています。
sql - データのパーティション・ウィンドウを選択するためのPL / SQL
ここでOracle11gを使用します。
以下のサンプルテーブルに対して特定のクエリを作成する方法を理解しようとしています。
これが、クエリに実行させたいことの疑似PL/SQLです。
IDの次のグループであるTYPEを取得したいのですが、ステータスはNEWで、優先度と日付の順に並べられています。
上記の場合、ステートメントは1Qまたは3Qのいずれかを返す必要がありますが、優先度と日付が同じであるため、両方を返すことはできません。3QがSTATUS='DONE'に設定されている場合、クエリは1Qを返す必要があります。
2番目のステップでは、このデータをテーブルに結合して、処理するセットの行を取得します(例:1Q)。これは2段階のプロセスである必要はありません。結合せずに処理する行のセットを取得できれば、それは理想的です。
本当に単純なものが欠けていることを願っていますが、必要に応じて、パーティション化に分析関数を使用することもできます。
oracle11g - SQLexecに文字を折り返さないように指示するにはどうすればよいですか?
Oracle11gを使用しています。また、spoolコマンドを使用して、ファイルへのクエリの出力を取得します。問題は、sqlexecが文字をラップしていて、私の人生を悲惨なものにしていることです。通常の状況ではこれで問題ないかもしれませんが、スプールファイルは平均して100,000行以上であるため、sqlexecが改行を繰り返し表示するため、これは望ましくありません。sqlexecやspoolコマンドに行の折り返しがないように指示する方法はありますか?
asp.net - asp.net を使用した Oracle 11g での接続プーリング
Oracle 11g と asp.net で接続プールを処理する最良の方法は何ですか。しばらくすると、Oracle が Web アプリケーションの新しい接続を開くことを拒否するという問題が発生しています。
これにより、リクエストがタイムアウトになり、キューに入れられます。
編集: これを微調整するためにOracleで行う必要があることはありますか?
oracle - 「select」ジェネレーターで動作しないOracle11gで休止状態
データロードアプリケーションのJPAプロバイダーとしてHibernate3.2.5とHibernateAnnotations3.3.1.GAを使用しています。接続プールにC3P0を使用するようにHibernateを構成しました。
私のデータベースは次のとおりです。OracleDatabase11gEnterpriseEditionリリース11.1.0.7.0-64ビット本番
11gにはHibernate方言が組み込まれていないため、使用するように構成しました
JDBCドライバー:Oracle JDBCドライバー、バージョン:11.2.0.1.0
アプリケーションは、後で分析およびレポートするために、メインフレームシステムからOracleDBにトランザクションパフォーマンスログをロードします。これは基本的に、フォルダーを監視して新しいファイルを待機し、それを読み取ってデータベースに挿入するバッチジョブです(1日あたり平均約450万行が挿入されます)。したがって、JDBCバッチ挿入を使用できるため、Hibernateを選択しました。いくつかの比較テストの後、EclipseLinkではあまりうまく機能しないように見えました。ファイルは独自のバイナリ形式であるため、CSVインポートなどのより単純なツールを使用することはできません。
もともとはワークステーションでMySQLを使用するためのアプリケーションを開発しましたが、これは元々は分析タスク用でしたが、データのインポートと保持を継続することが有用であることが証明されたため、エンタープライズOracleRACプラットフォームに移動したいと考えています。私自身と他の数人のアナリストが使用するために、2、3か月間それを使用します。DBAにテーブルを構成させ、フィールド名とデータ型の小さな変更を反映するようにエンティティクラスを調整し、ドライバーと接続の詳細などを変更しましたが、主キーの生成でいくつかの問題が発生しました。
いくつかのテーブルがあります(トランザクションタイプ、ユーザーコードなどのさまざまなサポートタイプを格納するいくつかのテーブルを含むメインデータテーブル)。それぞれに、シーケンスと更新前のトリガーを使用して自動生成される一意の(プライマリ)ID列があります。
DBAは、作成したユーザーが表示できないようにシーケンスを構成しました。
JPA(javax.annotations)の生成値タイプを使用しても、どのような場合でも機能しません。
例えば:
これにより、SQLが得られます。
Oracleドライバがエラーで例外をスローするもの:
調査を行った結果、Hibernate JPAアノテーション拡張機能「GenericGenerator」を「select」戦略で使用するオプションを見つけました(http://docs.jboss.org/hibernate/stable/core/reference/en/html/ mapping.html#mapping-declaration-id-generator)
例えば
ただし、これを使用すると、EntityManagerFactoryの作成中にHibernateがハングすることがわかります。プロパティの構築、名前付きクエリの構築、サーバーへの接続を通過した後、次の場所でハングアップするようです。
戻ってこない。
persistence.xmlファイルで方言を指定しなかった場合にも同じことが起こることがわかりました。
「インクリメント」戦略を使用すると問題なく動作しますが、これは、シーケンスがインクリメントされずに値がインクリメントされたためにシーケンスが中断されることを意味します。これは理想的とは言えません。
「ネイティブ」ストラテジーは、GenerationType.AUTOを使用した場合と同じ出力を提供します(ORA-02289:シーケンスは存在しません)。
これが間違ったキー生成戦略を使用したことが原因なのか、構成のエラーなのか、バグなのかはわかりません。
「選択」戦略を機能させるための支援、またはより良い代替案を歓迎します。プリペアドステートメントなどで純粋なJDBCを使用することに戻る可能性がありますが、これは少し厄介になる傾向があり、JPAアプローチを好みます。
いくつかの詳細:
Persistence.xmlプロパティ:
アノテーションを使用したエンティティクラスの1つでのIDフィールドの宣言のサンプル:
asp.net - ユーザー名に $? が含まれる Oracle 接続
何かを追跡するのに助けが必要です。Enterprise Manager で次のように表示されているいくつかの接続を取得しています。
Example$ という名前のユーザーはいません。これはどこから来たのですか?...
私はオラクル11gを使用しています。
編集: 私が追跡している問題は、接続を開いたままにするasp.netアプリにあります。接続を開くたびに「using」ステートメントを使用しているので、そうではありません。接続プーリングに問題があるようです。