問題タブ [ora-00904]
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 でのデータのマージと照合
2 つの別々のスキーマからデータを収集しようとしています。すべてのデータを取得する単一のクエリは複雑で、データベース サーバーがクラッシュする可能性があるため、個別のテーブルを作成し、必要なすべてのデータを入力しました。ここで必要なのは、後で重複する行を削除できるように、データをマージして列を一致させることだけです。以下は、探している結果を返すために作成した 2 つのクエリです。私の問題は、2 番目のクエリを実行すると、次のエラーが発生することです。
誰かが何が起こっているのかを理解するのを手伝ってくれますか?
クエリ 1
クエリ 2
sql - このマージ ステートメントが機能しないのはなぜですか?
1 日の大半をマージ ステートメントが機能しない理由を特定することに費やしましたが、この問題は少し変わったものに違いないと思い始めています。
私のデータベースには、merge ステートメントを使用する多数の PL/SQL プロシージャがありますが、特定の 1 つを機能させることは絶対にできません。示されている例よりもはるかに大きいですが、いくつかの列を更新するだけでコンパイルできないように、コードを削除しました。
エラーは「ORA-00904 "alias"."column_name" 無効な識別子」です。これは通常、列名が間違って入力されたか、マージの場合は結合で使用されるフィールドを更新しようとしていることを意味します。これは間違いなくそうではありません。私は4倍のチェックをしましたが、列名は正しいです。それらはすべて存在し、ステートメントの形式は他の多くの場所で使用しているものとまったく同じです。
ここで他に何が間違っている可能性がありますか?テーブルに何らかの破損がある可能性はありますか?
バージョンは10gです。
sql - pl/sql - 即時実行パラメータで to_date が機能しない
以下のprocを次のように実行できるようにしたい:
procコードは次のとおりです。
エラーをスローし続けます:
ORA-00904: "JAN": 識別子が無効です。
コンパイルされますが、次のコマンドを実行するとエラーがスローされます。
sql - where句で「ケース式列」を使用する
これは失敗します:
ORA-00904: "%s: 識別子が無効です"
Oracle 10.2 SQL でこの制限を克服する方法はありますか? where句で「ケース式列」を使用する方法は?
sql - 特定の値についてカンマ区切りの列を照会することは可能ですか?
これに似たレイアウトのテーブルがあります (所有していないため、変更できません)。
特定のカテゴリ ID を含む行を返す必要があります。値は文字列のどこにでもある可能性があるため、LIKE ステートメントを使用してクエリを作成することから始めます。
SELECT id FROM table WHERE categories LIKE '%c2%';
行 2 と 3 を返します
SELECT id FROM table WHERE categories LIKE '%c3%' and categories LIKE '%c2%';
行 2 と 3 は取得できますが、行 4 は取得できません
SELECT id FROM table WHERE categories LIKE '%c3%' or categories LIKE '%c2%';
再び行 2、3、および 4 を取得します
LIKE
私はすべてのステートメントが好きではありません。Oracle のドキュメントで見つけましFIND_IN_SET()
たが、10g では動作しないようです。次のエラーが表示されます。
このクエリを実行する場合: SELECT id FROM table WHERE FIND_IN_SET('c2', categories);
(ドキュメントの例) またはこのクエリ: SELECT id FROM table WHERE FIND_IN_SET('c2', categories) <> 0;
(Google の例)
行 2 と 3 が返されることを期待します。
LIKE
大量のステートメントを使用する代わりに、これらのクエリを作成するより良い方法はありますか?
sql - 奇妙な Oracle SQL の「無効な識別子」エラー
でエラーが発生する理由を理解するのを手伝ってくれる人はいますかcms.CRIME_ID
:
無効な識別子
列が存在するという絶対的な事実を知っており、それを除いてそのテーブル内の他のすべての列を参照できます。
その列の唯一の違いは、それがそのテーブルの主キーであることです。
編集:これが完全なエラーとテーブル作成スクリプトです。
EDIT2: また、次のコード例のように、結合を使用せず、通常の select ステートメントだけを使用すると、列に問題なくアクセスできることにも言及する必要があります。
oracle - Oracle初心者エラー:ORA-00904「casewhen」を使用すると識別子が無効になります
クエリでエラーが発生します。このクエリはOKで、データを返します(selectsとrownumsはページネーション用です):
今、私は「case when」を含めて、特定の状況でのみURLを取得しようとしているので、caseブロックを含めて次の変更を行います。
Oracleは次のエラーを起動します。
これは、inscription_dateを要求し、同じクエリレベルで使用しているためだと思いますが、これに対処する方法がわかりません。
また、自分が作ろうとしているものをどうやって作ることができますか?つまり、特定の条件下でのみURLを取得します。
誰でも助けることができますか?
前もって感謝します。
sql - ORACLE:ORA-00904 ::無効な識別子
私は次のselectを作成しました:
しかし、「ORA-00904:「E」。「EMP_ID」:無効な識別子」が表示されます。
サブクエリでE.EMP_IDへの参照を使用するにはどうすればよいですか?
sql - サブサブクエリを使用したSQL更新
Oracle11gの次の更新クエリで問題が発生しました。
ORA-00904:"A"。"COL4":無効なID。
したがって、a.COL4はサブサブクエリでは認識されませんが、これを解決する方法がわかりません。
/編集。私は何をしようとしていますか?
TABLE_Aのすべてのレコードについて、TABLE_Bには複数のレコードがあります。ただし、お客様からの新しい要件:TABLE_Aは代わりに2つの新しい列を取得しますが、TABLE_Bは削除されます。したがって、サブクエリの最初のレコードの表現は最初の新しいフィールドに書き込まれ、2番目のフィールドにも同じように書き込まれます。MikeCのソリューションはROW_NUMBER=1で使用できるため、最初のレコードは簡単です。
行の例: