Executar PL/SQL no Oracle via ODBC

24/11/2005

2

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.


Responder

Posts

25/11/2005

Marcio.theis

Você pode deixar uma qry que recebe o SQL do memo e executá-lo normalmente:

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.

 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

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar