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

Nie można uruchomić dynamicznego zapytania w procedurze składowanej podczas wybierania liczby rekordów

Twoja dynamiczna instrukcja nie powinna mieć na końcu średnika; jest to separator instrukcji i nie ma znaczenia ani nie jest prawidłowy dla pojedynczej instrukcji. Tak czy inaczej, możesz uruchomić dynamicznie tylko jedną instrukcję SQL (chyba że umieścisz kilka w anonimowym bloku PL/SQL).

Twój into też jest w niewłaściwym miejscu:

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;

Nie jestem pewien, dlaczego zawracasz sobie głowę posiadaniem i przypisywaniem zmiennych lokalnych, skoro możesz użyć argumentów procedury bezpośrednio, co moim zdaniem sprawia, że ​​instrukcja jest bardziej czytelna:

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. Tabela przestawna Oracle SQL

  2. jak zapętlić akceptację danych wejściowych użytkownika z pl/sql?

  3. Włączanie wirtualizacji w systemie BIOS w laptopie lub komputerze stacjonarnym dla maszyny wirtualnej Virtualbox

  4. WSJDBCConnection nie zawija obiektów typu oracle.jdbc.OracleConnection

  5. usuń określone słowo z ciągu