[firebase-br] PROCEDURE Nome da Tabela como passagem de parametro.
//---- Kelsie.Z.Marshall ----//
kelsie.z.marshall em gmail.com
Qua Set 2 19:18:20 -03 2009
Até consegui algo em uma consulta simples
-----------------------
declare variable cmds varchar(249);
begin
cmds = 'select * from ' || TABLE_NAME;
for execute statement :cmds into :var1 do
suspend;
end
--------------------------
Mas complica quando quero fazer na procedure...não consigo colocar o update
FIXA
DECLARE VARIABLE T_CAMPO INTEGER;
begin
for
select TAB.NUMERO
from TAB
into :T_CAMPO
do
begin
if( T_CAMPO = 'N.I.' ) then
begin
update TAB
set TAB.NUMERO = NULL
where TAB.NUMERO = :T_CAMPO;
end
end
end
--------------------------
GENERICA com psaagem de parametro no nome da tabela
Este código abaixo não funciona
DECLARE VARIABLE T_CAMPO varchar(1000);
begin
for execute statement
'select ' || CAMPO || ' from ' || TABLE_NAME into :T_CAMPO
do
begin
if( T_CAMPO = 'N.I.' ) then
begin
for execute statement
'update ' || TABLE_NAME || ' set ' || TABLE_NAME || '.' || T_CAMPO
|| ' =NULL' || 'WHERE ' || TABLE_NAME || '.' || T_CAMPO || '= :' || T_CAMPO
|| ';'
do
end
end
suspend;
end
--------------------------
"//---- Kelsie.Z.Marshall ----//"
<kelsie.z.marshall em gmail.com> wrote in message
news:h7mmib$mrg$1 em ger.gmane.org...
Já li no language reference e em vários exemplos na internet tudo pareçe
correto mas está dando erro.
Quero fazer uma simples procedure onde passo o nome da tabela como
parametro.
SET TERM ^^ ;
CREATE PROCEDURE TESTE (
TABLE_NAME VarChar(254))
AS
begin
execute STATEMENT 'SELECT * FROM ' || TABLE_NAME ;
end
^^
SET TERM ; ^^
ISC ERROR CODE:335544569
ISC ERROR MESSAGE:
Dynamic SQL Error
SQL error code = -902
Wrong request type in EXECUTE STATEMENT 'SELECT * FROM A_TAB1'
At procedure 'TESTE' line: 5, col: 3
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use:
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
Mais detalhes sobre a lista de discussão lista