sql >> Databáze >  >> RDS >> Oracle

Nelze spustit dynamický dotaz v uložené proceduře při výběru počtu záznamů

Váš dynamický příkaz by neměl mít na konci středník; to je oddělovač příkazů a není relevantní ani platný pro jeden příkaz. Dynamicky můžete spouštět pouze jeden SQL příkaz (pokud jich nevložíte několik do anonymního PL/SQL bloku).

Vaše into je také na špatném místě:

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;

Nejste si jisti, proč se obtěžujete mít a přiřazovat místní proměnné, když můžete přímo použít argumenty procedury, což podle mého názoru činí příkaz čitelnějším:

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



  1. Workflow UTF8 PHP, MySQL shrnuto

  2. Zkontrolujte, zda tabulka MySQL existuje bez použití syntaxe select from?

  3. Jak zapisovat pomocí BCP na vzdálený SQL Server?

  4. Jak vytvořit přehled z tabulky v Accessu 2016