Executing an oracle variable string as I do in SQL Server
1
vote
1
answer
1857
views
In SQL Server I can do something like:
DECLARE @VAR VARCHAR(100);
SELECT @VAR = SELECT * FROM SYS.DATABASES
EXECUTE(@VAR)
How can I execute a string that I've created inside a variable in Oracle?
This is the query:
DECLARE BUSCACOLUNA VARCHAR(2000);
BEGIN
BUSCACOLUNA:= 'SELECT '' SELECT '' || LTRIM(listagg ( '' , '' || ''"'' || T1.COLUMN_NAME || ''"'' || '' AS '' ||''"''|| T2.DESCRICAO ||''"'' ) within group ( order by t1.column_name ),'' , '') || '' FROM TABELA_ENTRADA ''
FROM ALL_TAB_COLUMNS T1
INNER JOIN TABBASE T2
ON T1.COLUMN_NAME=T2.NO_COL_TABBASE
WHERE T1.TABLE_NAME=''TABELA_ENTRADA''
AND T2.CD_CONTEUDO_ARQUIVO= ''X''';
END;
The result of that dynamic SQL is something like:
SELECT C1 AS B1, C2 AS B2...FROM TABLE
And I would like to execute this SELECT by executing the VARIABLE.
I tried with a loop, with
EXECUTE IMMEDIATE
but the query only returns:
> anonymous block completed
So I can understand it's working. If it was an UPDATE or INSERT, it would work, But I would like the return of that.
Asked by Racer SQL
(7546 rep)
Jul 1, 2019, 09:13 PM
Last activity: May 7, 2025, 07:08 PM
Last activity: May 7, 2025, 07:08 PM