2017-11-14 27 views
-1

Oracle SQLで奇妙なエラーが発生しました。フィールド/列が番号ではないにもかかわらず、「無効な番号」というエラーが表示されます。SQL ORACLE SELECT WILDCARD無効な番号

何が起こっているのか分かりませんか?

ここにSQLがあります。

Select * from Products where Prod_nm like '%A%'; 

他のテーブルでこの同じSQL文を使用してもエラーは発生しません。

ありがとうございました!

+3

「Prod_nm」は数値列でなければなりません。このエラーの他の説明はありません。 –

+0

"他のテーブルでこの同じSQL文を使用していますが、エラーはありません。"すべてのテーブルで同じ 'SQL'クエリを使用することはできず、テーブルが同一でない限り同じ結果が期待されます。スキーマを提供できますか? –

+1

残念ながら、OPのエラーは、指定されていないクエリ(結合)の一部から発生します。実際の詳細は解答のコメントに記載されています。私はこの問題を「再現できません」と締めくくっています。 – GolezTrol

答えて

0

read hereすることができますように:

アンORA-01722(「無効な番号」)エラーが試みが数に文字列を変換するために作られ、そして文字列が有効に変換することができない場合に発生します... ...

を文字列と比較される数値列のチェックをSELECTを行う場合の数は...結論は、O、あなたのテーブルの列Prod_nmは数値列なければならないということですtherwiseこのエラーメッセージは決してappeardしなかったでしょう。データベース構造を再確認してください。


EDIT

あなたはコメントで述べたように、使用しているクエリ:

Select * from Products 
Inner join Review 
ON Products.prod_id = Review.prod_id 
where Products.prod_nm like '%A%' 

は(ONを使用して)参加している数値列(Review.prod_id)Aとvarcharカラム(Products.prod_id)です。これがエラーの原因です。

+0

こんにちは@koby、Prod_nmはVarchar2です。 –

+0

@LexDacsそれはできません、あなたは100%確信していますか? –

+0

はい、そうです。実際には、元のクエリは です。*製品から選択してください。Inner join review ON Products.prod_id = Review.prod_idここで、Products.prod_nmは '%A%'と同じです。 –

関連する問題