Oracle SQLで奇妙なエラーが発生しました。フィールド/列が番号ではないにもかかわらず、「無効な番号」というエラーが表示されます。SQL ORACLE SELECT WILDCARD無効な番号
何が起こっているのか分かりませんか?
ここにSQLがあります。
Select * from Products where Prod_nm like '%A%';
他のテーブルでこの同じSQL文を使用してもエラーは発生しません。
ありがとうございました!
Oracle SQLで奇妙なエラーが発生しました。フィールド/列が番号ではないにもかかわらず、「無効な番号」というエラーが表示されます。SQL ORACLE SELECT WILDCARD無効な番号
何が起こっているのか分かりませんか?
ここにSQLがあります。
Select * from Products where Prod_nm like '%A%';
他のテーブルでこの同じSQL文を使用してもエラーは発生しません。
ありがとうございました!
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
)です。これがエラーの原因です。
こんにちは@koby、Prod_nmはVarchar2です。 –
@LexDacsそれはできません、あなたは100%確信していますか? –
はい、そうです。実際には、元のクエリは です。*製品から選択してください。Inner join review ON Products.prod_id = Review.prod_idここで、Products.prod_nmは '%A%'と同じです。 –
「Prod_nm」は数値列でなければなりません。このエラーの他の説明はありません。 –
"他のテーブルでこの同じSQL文を使用していますが、エラーはありません。"すべてのテーブルで同じ 'SQL'クエリを使用することはできず、テーブルが同一でない限り同じ結果が期待されます。スキーマを提供できますか? –
残念ながら、OPのエラーは、指定されていないクエリ(結合)の一部から発生します。実際の詳細は解答のコメントに記載されています。私はこの問題を「再現できません」と締めくくっています。 – GolezTrol