Oracle
 sql >> база данни >  >> RDS >> Oracle

Не се допуска интервал след префикса на параметъра „:“

От моя опит ще ви кажа. Има два сценария
1) Искате да посочите параметър в заявката, чиято стойност се задава динамично.

eg: where user_id = :userId

Тук няма да получите никакъв проблем, ако задавате параметър със същото име като "userId";
2) Вие преобразувате стойността

eg: select count(id) :: integer

когато правите това, трябва да използвате escape знак, в противен случай hibernate ще мисли, че това е параметър. И ще даде грешка „Всички параметри не са зададени“ можете да преодолеете това с писане на код с помощта на символ за изход

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

Така че това ще реши проблема ви. И ако погрешно сте използвали наклонена черта напред вместо наклонена черта назад, ще получите грешката "не е позволено пространство след префикса"

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

Но горещо ви препоръчвам да използвате функцията CAST вместо "::" този оператор select CAST(count(id) as integer) Това е по-добрият начин за преобразуване на типове и ще доведе до минимални грешки



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. DBD::Инсталацията на Oracle причинява грешка

  2. Нулирайте последователността на Oracle, за да има МИН. СТОЙНОСТ =1 и НАЧАЛНО число от 1

  3. PL/SQL:Грешка PLS-00306:грешен номер или типове аргументи при извикване към задействани за таблица с числа

  4. Динамична параметризирана заявка с харесване

  5. импортиране на дъмп файл в oracle 11gr2 получава грешки