wywołanie funkcji tworzącej tab

wywołanie funkcji tworzącej tab
kasiaKasia
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 259
0

Witam serdecznie,

mam taka funkcje, tworzy mi sie bez zarzutów ;

Kopiuj
create or replace FUNCTION c_tab(x VARCHAR2)
return varchar2 is
BEGIN
  EXECUTE IMMEDIATE 'create table abcd (efgh NUMBER)';

return x;
end ;

tylko nie wiem jak ja wywołać, próbuje w następujący sposób:

Kopiuj
variable zmienna
execute zmienna := c_tab('a');
print zmienna;

ale jest błąd :

Kopiuj
ORA-00900: invalid SQL statement

a zawsze tak wywoływałam funkcje Nie wiem dlaczego teraz nie chce działać ... Proszę uprzejmiej o wskazówkę

abrakadaber
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6610
0

select c_tab('a') from dual;
BTW po co tam to execute immediate?

kasiaKasia
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 259
0

nie działa

Kopiuj
ORA-14552: cannot perform a DDL, commit or rollback inside a query or DML
abrakadaber
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6610
0

DECLARE x VARCHAR2(10);
begin x := c_tab('aaa'); END;

kasiaKasia
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 259
0

działa DZIĘKUJE :) :) :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.