問題タブ [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.
oracle - 手順の動的SQLエラー
動的SQLプロシージャが機能しないのはなぜですか?私がやろうとしているのは、テーブルの単純な列を表示することだけです。次のエラーが発生します。
1行目のエラー:ORA-06550:1行目、7列目:PLS-00905:オブジェクトSYSTEM.JOINが無効ですORA-06550:1行目、7列目:PL / SQL:ステートメントは無視されます
エラー:
entity-framework - EF5 を使用してレコードがないことを多対多でクエリする方法
主キーが 2 つの外部キーの合成である純粋な多対多を想定しています。たとえば、Northwind の「Employee Privileges」には EmployeeID と PrivilegeID があります。この m2m は明らかに、Employees テーブルを Privilege テーブルに関連付けます。
EF を使用して、他の PrivilegeID に関連しているかどうかに関係なく、指定された PrivilegeID に関連付けられていないすべての従業員を返すクエリを作成する必要があります。
Sql Server では機能する EF クエリがありますがExcept()
、Oracle では機能しません。
t-sql でクエリを作成している場合、従業員特権を必要な特権でフィルター処理するクエリを作成します。「以下の EmpPrivQuery を参照してください」。次に、EmployeesMissingPrivileges に見られるように、EmpPrivQuery を Employee に直接結合して、フィルターを完成させます。
現在、多対多テーブルを作成するためのリレーションシップ プロパティを持つ Employee モデルと Privilege モデルがあります。プロジェクトでは、最初に EF コードを使用してスキーマを作成します。
これは EF 結合構文で実行できますか? EmployeePrivilege テーブルのエンティティ モデルを作成せずに実行できますか?
このブロックは元の投稿にありましたが、質問を曇らせます。コメント コンテキスト用に保持されます。 Oracle データ プロバイダーとして Devart dotConnect を使用しています。Oracle がスローしているエラーは
ORA-00904: "Extent1"."EmployeeID": invalid identifier
. SQL Server 用に作成されたコード ベースを Oracle で動作するように適合させる際に、これは解決する必要がある一般的なエラーです。ほとんどの場合、SelectMany() を使用して、クエリを書き直して、他のテーブルへのリレーションシップを WHERE 述語 (動的にするのが非常に簡単な場所) からクエリの本体に移動することで解決できました。これにより、データベース サーバーに送信されるクエリが平坦化される傾向があり、Oracle はそれを必要とするようです。
oracle - EF 5.0を使用して、多対多のレコードが欠落しているオブジェクトを返します
以下のスキーマを前提として、必要なフォームが欠落している連絡先を返すEFクエリを作成しようとしています。各連絡先には、FormTypesのコレクションに関連するContactTypeがあります。すべての連絡先は、そのContactTypeに関連するFormTypesの少なくとも1つのフォーム(ContactForm内)を持っている必要があります。
以下のlinqクエリからEFが生成するクエリは、SQL Serverに対しては機能しますが、Oracleに対しては機能しません。
SQL Serverに対して機能するすべてのEFクエリが、DevartのdotConnectデータプロバイダーを使用してOracleに対しても機能するように、データレイヤーをリファクタリングしているところです。
OracleがスローしているエラーはORA-00904:"Extent1"。"ContactID":無効な識別子です。
問題は、Oracleがレベル2以降のネストされたサブクエリのクエリからのテーブル列の参照をサポートしていないことです。Oracleがスローする行は、「Extent1」。「ContactID」を参照しているExcept(またはマイナス)サブクエリにあります。「Extent1」は、クエリの最上位で定義されている連絡先のエイリアスです。これは、Oracleの制限に関するDevartの説明です。
多くのクエリでこの問題を解決する方法は、SelectMany()と場合によってはJoin()を使用して、テーブル間の関係をWhere()述語からクエリの本体に移動するように書き直すことです。これにより、データベースサーバーに送信されるクエリがフラットになり、EFによって生成されるサブクエリが最小化または排除される傾向があります。 これは、左外部結合を使用して解決された同様の問題です。
列"Extent1"。"ContactID"が存在し、EFとDevartが生成するクエリの命名構文は問題ではありません。
このクエリを書き直す方法についてのアイデアは大歓迎です。目的は、OracleおよびSQLServerに対して機能する連絡先のContactTypeに必要なFormTypeのフォームが欠落している連絡先を返すクエリです。
nhibernate - Fluent NHibernate - ORA-00904: : オブジェクトのプロパティ名がオラクルのキーワードであるため、識別子が無効です
Fluent NHibernate を使用して、Oracle データベースの自動マップを行いました。My Domain クラスには、プロパティ名としていくつかの Oracle キーワードがあります。例: グループは Oracle のキーワードです。グループを列として使用する場合は、引用符で囲む必要があります (「グループ」のように)。Fluent NHibernate でこれを処理するにはどうすればよいでしょうか。
IColumnInstances を変更して ColumnName メソッドを追加し、規約を追加しました。このコードを追加すると、別のエラー「ORA-00907: 右括弧がありません」がスローされます。代替ソリューションはありますか?
ここにコードがあります
oracle - 「SELECT」ステートメントのないプロシージャーでの ORA 00904 エラー
指定された入力パラメーター「p_date」より前の「CREATEDATE」を持つすべての行を削除する簡単な手順があります。
何らかの理由で私は取得し続けます"ORA-00904: "P_DATE": invalid identifier":
sql - Oracle は ddl ステートメントで大文字と小文字を区別しますか
以下は実行に失敗します
出力を与える
ただし、「id」から「ID」への変更は正常に機能します
以下も正常に動作します
DDLステートメントでidだけでなく「ID」を指定した場合の効果について誰かが答えてくれれば幸いです。オラクルは大文字と小文字を区別しますか、それとも区別しませんか
sql - Oracle CONTAINS が無効な識別子 ORA-00904 を与える
そのため、ID 要素が「-」で区切られた文字列を受け取る webapp があります (例: someid1-someid2
)。次に、文字列を のようなものに変換しますsomeid1 OR someid2
。Oracleのドキュメントによると、理論的にはこれにより、次のようなことができるはずです
ただし、SQL Dev でサンプル クエリを実行すると、次のエラーが発生します。
ORA-00904: "CONTAINS": 識別子
00904が無効です。00000 - "%s: 無効な識別子"
*原因:
*処置:
Oracle のバージョンはドキュメントの対象であるため、無効な識別子と見なされるOracle9i Enterprise Edition Release 9.2.0.5.0 - Production
理由がわかりません。CONTAINS
その他のオプション パラメータの追加
も同じエラーを出します。ここで私/それが間違っていることは何ですか?
編集:
間違いなく機能していませんが、リクエストに応じて「作業コード」