問題タブ [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.
oracle - PL / SQLプロシージャでコミットにつながるすべてのステートメントはどれですか?
Oracle11gでPL/SQLプロシージャを作成しました。truncate
、create
またはステートメントはありませんcommit
が、セッションはまだコミットされています。SQLDeveloperとPL/SQLDeveloperを使用しています。
誰かがどのステートメントがプロシージャまたは関数内のコミットにつながるか教えてもらえますか?
nhibernate-mapping - パスの場所: Oracle 11g Standard Edition Release 2 の Oracle.Driver (Oracle.DataAccess.dll)
Oracle 11g Standard Edition Release 2 をインストールしました。nhibernate 2.2 を使用しています。すでに多くの時間を費やしましたが、インストールされたファイルに Oracle Driver dll ファイル (Oracle.DataAccess.dll) の場所が見つかりませんでした。助けてください。前もって感謝します。
サタディップ
oracle - クエリにより DB が ORA-0113 で失敗する
インライン ビュー内のコレクション内の要素からコレクションを作成する必要があります。コレクションを集約解除し、collect および table 関数を使用して再度集約しようとしましたが、ORA-03113 で失敗します。
以下は、問題の原因となっているクエリの簡略化されたバージョンです。
私の実装では、すべてのコレクションを単一のコレクションに集約する必要がある単一のクエリで、ユニオンで結合された多くのレベルのネストされたクエリを使用します。パフォーマンス上の理由 (高価なコンテキスト切り替え) から、PL/SQL コードを実装してコレクションを集約することはできません。
フィードバック/提案をありがとうございます。
脚本
結果
sql - 任意の文字列を整数に変換します
簡単に言えば、任意の文字列を整数に変換できるようにしたいと考えています。できれば整数のサイズを制限し、結果が常に同じになるようにしたいと考えています。言い換えれば、オラクルがサポートする、数値を返すハッシュ関数があり、その値に最大値を設定できるでしょうか?
必要に応じてコンテキストを提供するために、次の簡略化された形式の 2 つのテーブルがあります。
列sequence_number
はnumber(3)
表 1 とvarchar2(11)
表 2 にあります。これは、両方のテーブルの主キーの一部です。
データは外部から提供され、変更できません。表 1 では単純な順序で作成されていると思いますが、表 2 では意味があります。データは構成されていますが、代表的なものです。
number(3)
フィールドを出力すると誰かが約束しました。これは最初のテーブルの列では問題ありませんが、2 番目のテーブルでは問題が発生します。
sequence_number
1000未満の整数(簡単)に変換できるようにしたいと思います(より難しい) 、可能な場合は定数です(一見不可能です)。'2QD44561'
これは、常に戻りたいという意味です586
。2 つの文字列が同じ数値を返すかどうかは問題ではありません。
使用できる整数に変換するだけutl_raw.cast_to_number()
です:
しかし、ご覧のとおり、これは 1000 未満ではありません。
また、何かを思いつくことができるかどうかを確認するためにdbms_crypto
andをいじっていましたが、小さな整数を取得することができませんでした。utl_encode
方法はありますか?
sql - 個別 + ランク オーバー ジョイン
これらの列を持つテーブル BNK_ACCT_GRP_ST があるとします。
その bnk_accts データが取り込まれます:
例 1:
例 #2:
どこ:
- BNK_ACCT_GRP_ST_ID は自動インクリメント フィールドです。
- BNK_ACCT_ID は実際には銀行口座番号の ID です。
- BNK_ACCT_GRP_ID は grp id (常に増加) です。
- BNK_ACCT_GRP_ST_CD、BNK_ACGRP_ST_SRC_EVNT_TYP_CD、および BNK_ACGRP_ST_SRC_TRAN_ID は、トランス目的の ID です。
- FNCL_GRP_ID - この銀行口座が属する銀行機関の ID
必要なもの: FNCL_GRP_ID に基づいて各 BNK_ACCT_ID の最新の BNK_ACCT_GRP_ID をプルするクエリを作成する。ここで、1 つの銀行口座は 1 つ以上の fncl 機関に属することができるため、クエリは次の出力を返す必要があります。
例#1:
例#2:
私は最近、のコンボなど、多くのことを試しました
しかし運がない。
sql - 1番目の値に基づいてグループの2番目の行を選択します
ここに、次のデータが入力されたテーブルがあるとします。
すべてのアカウントには複数のacc_idがありますが、パラメーターコードは固定されています。このルールに従うアカウントのみを取得しようとしています。最大の(最新の)acc_grp_id1にparam1=2およびparam2=166がある場合、両方の行が存在する必要があります。最大の(最新の)パラメーターが異なるコードと等しい場合は、最新のパラメーターのみを入力します。
これはそれがどのように見えるべきかです:
実際の出力は、5つのテーブルからの結合です。
任意のアイデアをいただければ幸いです。
bash - Oracle expdp CentOS 6.2 シェル スクリプトの異常な動作 - 新しい行でコマンドが見つからない
私の最初の投稿は優しくしてください。
Oracle データベースをバックアップするために RedHat 5.3 ボックスから取り出した以下のスクリプトがあります。スクリプトは、Redhat 5.3 ボックスで正常に動作していました。次に、それを参照として使用して、centos 6.2 ボックスで Oracle データベースをバックアップし、必要に応じて変更しました。
奇妙な動作は、スクリプトを実行すると、新しい行によってコマンドが見つからないというエラーが発生し、以下に示すように連結がマージされることです。
他のテキストと結合する日付はタイプミスではなく、エコー出力です。
最初に set -x を追加しました。これが出力です
応答を待っています...
oracle - 二重ラテン文字を US7ASCII に変換する
オラクルでÆ(latin capital letter ae)
をAEに変換するにはどうすればよいですか(US7ASCII)
。以下のクエリで試しました:
しかし、それは私に与えますか?出力として、ただし、以下に示すように、同じクエリが単一の文字に対して機能しています。
java - SQL での maxdrawdown の計算
わかりました、すべての典型的な取引情報を含む取引口座からの単純なテーブルがあるとしましょう:
ここで必要なのは、SQL のみを使用して最大ドローダウンを計算することです。Javaで簡単に実行できます(ループを実行します)が、これは大きなクエリの一部であり、さまざまなaccパラメーターを計算する必要があります。
式を説明しましょう: 最大ドローダウンは、データベースで利用可能なすべての acc レコードについて、マイナス方向への最大の残高低下を示す値です。上記の例を見ると、最初のドローダウンは $400 (最初のマイナスの $100 セクション) で、2 番目のドローダウンはより大きく、1200 ドル (2 番目のセクション) です。ご存知のように、これらのドローダウンは定期的に発生するため、ac の履歴には、ここに示すように 2 つだけではなく、多くのドローダウンが含まれているはずです。通常、100,000 レコード以上の巨大なデータセットでこの種のデータを計算します。
env は oracle 11gr2、読み取りアクセスのみです。どんな賢いアイデアでも大歓迎です!
わかりました。システムが編集内容を上書きしているように見えるので、それを 1 つに統合する必要があります。負の取引を 'Y' としてマップする artif 列を追加しようとし、その後それらに対して sum() を実行する方法を見つけようとしました。ここでの問題は、任意の 1 つのレコードが結果レコードの sum() よりも多くなる可能性があることです。
sql - LISTAGG を使用しない Oracle SQL での文字列のリストによる順序付け
私は次のような 2 つのエンティティを使用しています:Item
と。Attribute
関連付けテーブルで指定されているItem
has :Attributes
このデータがクライアントに到達するとItem
、 ごとに行が表示され、各行には のリストがAttribute
名前別に表示されます。例えば:
ユーザーはAttributes
列を並べ替えるオプションを使用できるため、次のようにデータを並べ替える機能が必要です。
現在、1 行につき 1 行のデータを取得していますItemAttribute
。基本的:
次のような結果が生成されます。
実際のORDER BY
句は、ユーザー入力に基づいています。通常は 1 つの列であるため、順序付けは簡単です。結果セットを処理するアプリ側のループは、Attribute
名前をコンマ区切りのリストに結合してクライアントに表示します。しかし、ユーザーがそのリストを並べ替えるように要求した場合、Oracle に結果を並べ替えてもらい、上記の例を使用すると、次のようになります。
Oracle のLISTAGG
関数を使用して、並べ替えの前に属性リストを生成できます。ただしAttribute.name
、非常に長い文字列になる可能性があり、組み合わせたリストが 4000 文字を超える可能性があり、クエリが失敗する原因となります。
Oracle SQL (11gR2) を使用して、この方法でデータをソートするクリーンで効率的な方法はありますか?