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

Не може да се изпълни динамична заявка в съхранена процедура, докато се избира брой записи

Вашият динамичен израз не трябва да има точка и запетая в края; това е разделител на изявления и не е уместно или валидно за едно изявление. Така или иначе можете да изпълнявате динамично само един SQL израз (освен ако не поставите няколко в анонимен PL/SQL блок).

Вашият into също е на грешното място:

TEMP_1 := 'select count ( '|| E ||' ) from ' || C;

DBMS_OUTPUT.PUT_LINE ('STARTED');
DBMS_OUTPUT.PUT_LINE (TEMP_1);

EXECUTE IMMEDIATE TEMP_1 INTO Count_source;

Не съм сигурен защо си правите труда да имате и присвоявате локални променливи, когато можете да използвате директно аргументите на процедурата, което според мен прави израза по-четлив:

TEMP_1 := 'select count ( '|| COLUMN_SOURCE ||' ) from ' || TABLE_SOURCE;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да получите брой хора въз основа на възрастови групи с помощта на SQL заявка в база данни на Oracle?

  2. КАК ДА ИЗТЕГЛЯМ ДАННИ МЕЖДУ 2 ДАТИ В ORACLE SQL DEVELOPER

  3. Създаване на таблица чрез SQL команден ред, невалиден идентификатор

  4. Свързване чрез клауза, за да получите върха на йерархията

  5. Oracle10G SQL:Превръщане на колони в редове