Executar PL/SQL no Oracle via ODBC
24/11/2005
0
Pessoal,
Estou precisando executar um procedimento escrito em Oracle utilizando a linguagem PL/SQL.
Uso uma conexão ADO, através de driver ODBC da instalado junto com o client do Oracle. Consigo executar normalmente as procedures já existentes no banco, mas queria executar enviando a programação em PL/SQL como envio um select qualquer. Eu libero um memo pro usuário digitar o PL/SQL e quando ele clicar em executar, fazer a consulta no banco e retornar os valores.
Procurei alguma coisa na net sobre esse assunto, mas não acho nada relacionado com Delphi.
Obrigado.
Estou precisando executar um procedimento escrito em Oracle utilizando a linguagem PL/SQL.
Uso uma conexão ADO, através de driver ODBC da instalado junto com o client do Oracle. Consigo executar normalmente as procedures já existentes no banco, mas queria executar enviando a programação em PL/SQL como envio um select qualquer. Eu libero um memo pro usuário digitar o PL/SQL e quando ele clicar em executar, fazer a consulta no banco e retornar os valores.
Procurei alguma coisa na net sobre esse assunto, mas não acho nada relacionado com Delphi.
Obrigado.
Prgdelphi
Curtir tópico
+ 0
Responder
Posts
25/11/2005
Marcio.theis
Você pode deixar uma qry que recebe o SQL do memo e executá-lo normalmente:
E deixe esta qry apontando para seu Grid, assim quando abrir ira mostrar os campos do SQL que o usuário solicitou...
Query1.Close; Query1.SQL.CLear; Query1.SQL.Add(Memo1.Text); Query1.Open;
E deixe esta qry apontando para seu Grid, assim quando abrir ira mostrar os campos do SQL que o usuário solicitou...
Responder
25/11/2005
Prgdelphi
Foi assim mesmo que eu tentei fazer, mas continua me retornando erro.
Fiz o seguinte:
Acrecentei um TADOConection e um adoquery no formulário. No ADOQuery coloquei check parameters = false para não dar erro informando que o parâmetro é inválido.
Em seguida, tentei executar o seguinte comando PL/SQL. Apenas como teste.
Mas quando tento executar, recebo o seguinte erro:
ORA-01840: input value not long enough for date format
ORA-06512: at line 1.
Acredito que naum tenha nenhum erro no comando pois no sql plus ele roda normalmente.
Agradeço qualquer ajuda que vocês puderem me dar.
Obrigado.
Fiz o seguinte:
Acrecentei um TADOConection e um adoquery no formulário. No ADOQuery coloquei check parameters = false para não dar erro informando que o parâmetro é inválido.
Em seguida, tentei executar o seguinte comando PL/SQL. Apenas como teste.
DECLARE NUMIN NUMBER; NUMOU NUMBER; COMPDT VARCHAR(08); DT_CK DATE; BEGIN dbms_output.enable(10000); SELECT ´01´ INTO NUMIN FROM DUAL; SELECT SUBSTR(SYSDATE,1,2) INTO NUMOU FROM DUAL; SELECT SUBSTR(SYSDATE,3,6) INTO COMPDT FROM DUAL; WHILE NUMIN <= NUMOU LOOP DT_CK := NUMIN||COMPDT; dbms_output.put_line(NUMIN); dbms_output.put_line(NUMOU); NUMIN := NUMIN + 1; END LOOP; END;
Mas quando tento executar, recebo o seguinte erro:
ORA-01840: input value not long enough for date format
ORA-06512: at line 1.
Acredito que naum tenha nenhum erro no comando pois no sql plus ele roda normalmente.
Agradeço qualquer ajuda que vocês puderem me dar.
Obrigado.
Responder
Clique aqui para fazer login e interagir na Comunidade :)