Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Spacja nie jest dozwolona po przedrostku parametru „:”

Z mojego doświadczenia opowiem. Istnieją dwa scenariusze
1) Chcesz określić parametr w zapytaniu, którego wartość jest ustawiana dynamicznie.

eg: where user_id = :userId

Tutaj nie będzie żadnego problemu, jeśli ustawiasz parametr o tej samej nazwie co "userId";
2) Rzucasz typ wartości

eg: select count(id) :: integer

kiedy to robisz, musisz użyć znaku ucieczki, w przeciwnym razie hibernate pomyśli, że jest to parametr. I spowoduje to błąd „Wszystkie parametry nie są ustawione ” możesz temu zaradzić, pisząc kod ze znakiem ucieczki

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

To rozwiąże Twój problem. A jeśli niewłaściwie użyjesz ukośnika zamiast ukośnika odwrotnego, pojawi się błąd „spacja nie jest dozwolona po prefiksie”

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

Ale gorąco polecam Ci użycie funkcji PRZESYŁANIE zamiast używania "::" ta operatorka select CAST(count(id) as integer) Jest to lepszy sposób rzucania typów i prowadzi do minimalnych błędów



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Użycie wartości logicznej w PL/SQL

  2. SELECT z tabeli z listą Varying IN w klauzuli WHERE

  3. SPRAWDŹ OGRANICZENIE ciągu, aby zawierał tylko cyfry. (Oracle SQL)

  4. Dlaczego typ danych Long został zastąpiony przez LOB w Oracle?

  5. Zastosuj funkcję ILE.LICZB na podgrupie grup