sql >> データベース >  >> RDS >> Oracle

TO_CHAR(number)関数はORA-01722を返します:無効な数値

    qtyだと思います varchar2として定義されています my_tableで --それ以外の場合、to_numberを呼び出しても目的はありません。 。その仮定が正しければ、テーブルにqtyがある他の行があることに賭けます。 数値以外のデータが含まれています。

    SQLはセットベースの言語であるため、Oracle(またはその他のデータベース)は、適切と思われる順序で物事を完全に自由に評価できます。つまり、Oracleはto_number(qty)を完全に自由に評価できます。 id=12345を適用する前の式 述語。 Oracleがqtyの行に遭遇した場合 値を数値に変換できないため、エラーがスローされます。

    id=12345の特定の行に数値以外のデータが含まれている可能性もあります。 それはたまたま表示されていません(たとえば、制御文字)。クエリを実行することで確認できます

    SELECT dump(qty, 1016) 
      FROM my_table
     WHERE id = 12345
    

    (16進数ではなく10進数が必要な場合は、dumpの2番目のパラメーターとして1010を使用します。 )そして、データに予期しないものがないかどうかを確認します。



    1. この異常な一致基準を使用して結合を作成するにはどうすればよいですか?

    2. Amazon RDS / MySQLでこのメモリ消費パターンを説明しますか?

    3. 再帰的にSequelizeを含めますか?

    4. これは、mysqlを使用して動的データをリアルタイムで双方向に同期するための最良の方法です