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

パラメータプレフィックス':'の後にスペースを入れることはできません

    私の経験からお話しします。 2つのシナリオがあります
    1)値が動的に設定されるパラメータをクエリで指定する必要があります。

    eg: where user_id = :userId
    

    ここでは、「userId」と同じ名前のパラメータを設定している場合は問題ありません。
    2)値を型キャストしています

    eg: select count(id) :: integer
    

    これを行うときは、エスケープ文字を使用する必要があります。そうしないと、Hibernateはそれがパラメーターであると見なします。また、エラーが発生します"すべてのパラメータが設定されていません" エスケープ文字を使用してコードを書くことでこれを克服できます

    eg:select count(id) \\:\\: integer
    

    したがって、これで問題が解決します。バックスラッシュではなくスラッシュを誤って使用すると、「プレフィックスの後にスペースを使用できません」というエラーが表示されます。

    Wrong: select count(id)//://: integer
    Right: select count(id)\\:\\: integer
    

    ただし、"::"を使用する代わりにCAST関数を使用することを強くお勧めします。 この演算子select CAST(count(id) as integer) これは型キャストのより良い方法であり、エラーを最小限に抑えることができます



    1. mySQLでカスタムORDERBYオーダーを定義する方法

    2. 一括挿入のためにT-SQLで変数をキャストする方法は?

    3. ローカル接続を行うときに、ホストがこのmysqlサーバーに接続することは許可されていません

    4. SQLiteで列のデータ型を確認する5つの方法