問題タブ [ora-01036]

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

asp.net - system.data.oracleclient を使用して適切な検索クエリを作成する

いくつかのaspページで使用されるクラスで検索機能を構築しています。アイデアは単純で、ユーザーから検索用語を取得し、データベースにアイテムを照会します。現在、私はこれを間違った方法で行っています。これは、SQL インジェクション攻撃に対して脆弱です (そして、何か問題が発生した場合にELMAHがその日を救うためにそこにいます)。

文字列の連結は悪いです。次にわかるのは、Bobby Tablesが私のシステムを破壊することです。これを行う正しい方法は、文字列に :searchterm を入れて次の行を追加することにより、適切な oracle 変数を作成することです。

問題は、like ステートメントを使用しているため、検索語の両側に % を使用できるようにする必要があることです。「%:searchterm%」ではそれができないようです。エラーが発生するだけです。 ORA-01036: 変数名/番号が無効です。

パラメータ化できますが、柔軟な like ステートメントをその一部にすることはできますか?

0 投票する
2 に答える
634 参照

java - Java JDBC Oracle 9i から 10g へのアップグレードの問題

Oracle 9i から 10g にアップグレードしたばかりで、データベース クエリは 9i クライアントでは動作しますが、10g では動作しません。クエリは何も変更されていません。次のエラーが表示されます。

何が起こっているのかよくわかりません。なぜそれはもう実行されません。これは、約 3 つまたは 4 つのテーブルを結合する単なる select ステートメントです。setInt を使用して変数を渡していることを確認しています (使用している数値です)。結合されているテーブルの差分をとっている間、私が異なると思う唯一のことは、あるテーブルでは、結合している列が、一方のテーブルでは Number に設定され、もう一方のテーブルでは Number(12) に設定されていることです。これは違いがありますか?クエリは引き続き TOAD と SQL Navigator で実行されます...

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

sql - Oracle の UPDATE ステートメント

Oracleバックエンドを備えたWebサーバーに保存するためのパラメーターが.Netクライアントプログラムで設定され、Webサービスを介してデータセットとしてアップロードされるクライアントプログラムを構築しています。

Web サービス コードでは、データがデータセットから読み取られ、Web サーバー (Oracle バックエンド) 上の UPDATE ステートメントに追加されます。

サーバーはファイアウォールの背後にある顧客の LAN で実行され、関連するパラメーターの動的な性質のために、sproc は使用されていません。SQL 文字列はロジックに組み込まれています。

文字列の例を次に示します。

VS 2010 でコードをデバッグし、サーバー コードにステップインすると、次のエラーが表示されます。

宛先の oracle マシンで SQL コマンドを実行すると、上記のステートメントのバインド変数を入力するように求められ、正しい日付形式を使用している限り、UPDATE ステートメントは正しく機能しました。

質問:

1)月の形式が間違っていると、オラクルがORA-01036エラーをスローした可能性はありますか?

2) Oracle マシンで実行されている ASP.net Web サイトから日付形式を変換する必要がないのはなぜですか? Oracle には、バインド変数の入力画面を除外するデフォルトの変換ルーチンがありますか?

3) 日付形式が問題でなかった場合、ORA-1036 は正確には何を意味し、どの変数が不正な名前/番号を持っているかをどのように発見しますか?


これは、データセットのタイプ (WOName) を受け取り、適切な SQL 文字列を返す関数のスニペットです。多くのケースが存在しますが、読みやすくするために削除されています。

これは、クライアント プログラムから受信した 15 種類のデータセット (WOName) のどれに応じて、Oracle コマンド オブジェクト byRef を取得し、それに必要なパラメーターを追加する関数のスニペットです。多くのケースが存在しますが、読みやすくするために削除されています。

更新された Cmd オブジェクトはメイン プログラム ロジックに返され、そこで ExecuteNonQuery() が呼び出されます。

以下の params のテスト値は次のとおりです。

今日これを実行している間、この正確なコードは成功しました。しかし、別の同様のケースはありませんでした。私はまだ、Oracle によって実行される暗黙の型キャスト (存在する場合) を信頼していません。特に、Oracle が dbNull.value で渡されるこれらのパラメーターをどのように処理するかについては疑いがあります。それが問題なら、私はそれを回避する必要があります。このシステムに渡された値を常に取得するとは限らないオプションのパラメーターと列が多すぎて、null で中断できません。

0 投票する
2 に答える
16873 参照

c# - C# での LIKE を使用した Oracle バインディング変数の使用

動的 SQL 生成の使用を停止し、バインド変数の使用を奨励する取り組みの一環として、いくつかの問題に直面しています。

Oracle Data Providers for .NET を使用して、ASP.NET ページから Oracle 9i データベースにクエリを実行しています。

クエリは

Oracle パラメータを次のように定義します。

これは、「=」演算子では問題なく機能します。しかし、「LIKE」で機能させることができないようです。「%」ワイルドカードの使用を受け入れるようにクエリをフォーマットする方法がわかりません。

私が試してみました:

また:

しかし、ORA-00911 (不正な文字) と ORA-01036 (不正な名前/値) の例外しか表示されません。

私は何を間違っていますか?

0 投票する
1 に答える
3584 参照

sql - ORA-01036: PL/SQLスクリプトの変数名/番号が無効です

私はPL/SQLゲームにかなり慣れていないので、ログインを作成し、読み取り専用/読み書き特権を付与する短いスクリプトを考え出そうとしています(必要に応じて必要な付与を行います)。ただし、変数のスコープの問題が発生しています。誰かが私が間違っているかもしれないことを助けてもらえますか?

切り取ったものは次のとおりです。

ODP.NET を使用して変数の割り当てを行い、OracleCommand.Parameters.Add()

0 投票する
1 に答える
635 参照

oracle - Delphi7 のマスター詳細関係クエリの結果が ORA-01036 になる

Delphi7、Devart の dbExpress ドライバー 4.70 を使用しています。

2 つの TSQLTables (それらを and と呼びますA) B、2 つの TDataSetProviders (dspAおよびdspB)、2 つの TClientDataSets (cdsAおよびcdsB)、2 つの TDataSources (dsAおよびdsB)、および 2 つの DBGrids (gridAおよびgridB) をドロップします。すべてがうまく設定されています。cdsA.Activetrueに設定すると、データが表示されgridAます。ごとに同じcdsB

今、関係を実装したい

フィールドは、のフィールドによって参照されるatrueAの外部キーであり、の主キーでもあります。次のように設定します(グラフィックツールを使用します):BbbB

するとcdsB.Open、次のエラーが発生しました。

ORA-01036: 変数名/番号が無効です。

フィールドa値は常にnullテーブル A にあります (データはありません)。TSQLMonitor は次のクエリを報告します。 Execute: select * from A

...

Execute: select * from ENTI where (b is NULL)

:1 (Number,IN) = <NULL>

何が欠けていましたか?どうすれば修正できますか?

0 投票する
1 に答える
1334 参照

c# - ORA-01036: データソースで挿入コマンドを使用する場合

asp.net で挿入ステートメントを設定しようとしています。

私のinsertCommandは次のとおりです:

挿入パラメーターのコードは次のとおりです。

そして、挿入されている私のOracleDBテーブル(DVD)は次のとおりです。

パラメータ セクションの変数の型がテーブルの変数の型とは異なるため、変数の型の潜在的な競合であると考えていますが、それらをより適切な型に交換しようとしましたが、役に立ちませんでした!

0 投票する
0 に答える
1018 参照

asp.net - ORA-01036: SELECTのパラメータに無効な変数名/番号エラーがあります

GridView に一連のドロップダウン リストを作成しようとしています。RowDataBound イベントでは、gridviewrow の他の情報に基づいて呼び出して、行にドロップダウンを設定するための項目を取得します。次のコードで「ORA-01036: パラメーターの無効な変数名/番号エラー」が発生します。

「:currentYear AS CURRENT_YEAR」を SELECT ステートメントから削除すると、正常に実行されます。他のテーブルの結合からの別の SELECT で同じステートメントを問題なく使用します。

strYear は gridviewrow のラベルから取得され、データがあり、CDate に対して有効であることを確認しました (同じ結果の文字列としても試しました)。StrItemVal(0) は、別のドロップダウン リスト (渡された :currentYear を使用して正常に入力されたもの) から取得されます。このコードは、ドロップダウン リストに選択された値がある場合にのみ呼び出されます。

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

php - ORA-01036; 不正な変数名/番号

次の挿入クエリがあります

このクエリを実行しようとするたびに、このエラーが発生します

少し調べてみましたが、どうやら変数の 1 つが SQL ステートメントに含まれていないことを意味しているようです。これは私には当てはまりません。ステートメント、DB (オラクル) テーブル、およびすべてのバインドされた変数を確認しましたが、それらはすべて一致しています。

エラーの行番号は、それが $driveable 変数であることを示します。チェックを行ったところ、これは問題なくページに送信されています。

他にどこを見ればよいかわからないので、どんな助けでも素晴らしいでしょう。

0 投票する
1 に答える
746 参照

.net - ora-01036 無効な変数名/番号 VB.Net を使用した ExecuteNonQuery 呼び出し

.NET 経由で Oracle クエリを実行する際に問題が発生しています。私は.NetからOracleコマンドを呼び出すのはまったく初めてなので(私はmySQLのバックグラウンドから来ています)、どんな助けも大歓迎です!

最初にクエリ文字列を作成します...

次に、パラメータを追加します...

ExecuteNonQuery() 呼び出しで例外が発生します... ORA-01036: 無効な変数名/番号

プロシージャーの定義

pVehicleID、pContractID、pDriverID、および pDateTimeOn は必須です。