Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Edson Ferreira da Silva Júnior

com Select ???

Recommended Posts

Olá a todos,Tenho uma duvida, estou usando o PL/SQL e tenho uma tabela de nome S_SRV_REQ ela tem dois campos de datas um que é data de abertura e o outro é a ultima data ativa, gostaria de saber como fazer dentro do SELECT uma condição para que ele traga o campo que esta com algum valor em uma variavel ...exemplo start Se data_ativa estiver nula então variavel = data_abertura senão variavel = data_artivafimDesde já grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

voce quer o que exatamente ?

 

atualizar , apenas obter ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi muito bem o que você está querendo...

 

Será que seria algo desse tipo:

 

SET SERVEROUTPUT ON

DECLARE

var_valor VARCHAR2(20);

BEGIN

SELECT MAX(IDUSUARIO) INTO var_valor FROM T_USUARIO WHERE IDUSUARIO IS NULL;

 

DBMS_OUTPUT.PUT_LINE('O valor e: ' || var_valor);

 

END;

/

 

Neste exemplo você ainda pode colocar um FOR para varer todos os campos nulos, isso vai de acordo com sua necessidade.

 

A cláusula INTO joga algum valor do SELECT dentro de uma variável.

Neste exemplo joguei um valor de um select simples e joguei na variável var_valor.

 

Neste seu exemplo você poderia tb fazer uma exceção da seguinte forma:

 

BEGIN

UPDATE ... (algum comando)

EXCEPTION WHEN OTHERS THEN

UPDATE ... (algum comando)

END;

 

Explica oq exatamente você esta querendo colocando ate a tabela e os campos, pois fica bem mais facil,

 

falow http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal

Bem, pelo que entendi, você teria que utilizar a função NVL. Ficaria mais ou menos assim:

 

DECLARE

v_Data DATE;

CURSOR c_Data IS

-- Se DATA_ATIVA for nula então DATA_ABERTURA senão DATA_ATIVA

SELECT NVL(DATA_ATIVA, DATA_ABERTURA)

FROM S_SRV_REQ;

BEGIN

OPEN c_Data;

LOOP

FETCH c_Data INTO v_Data;

DBMS_OUTPUT.PUT_LINE(v_Data);

EXIT WHEN c_Data%NOTFOUND;

END LOOP;

CLOSE c_Data;

END;

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá a todos,

 

 

Tenho uma duvida, estou usando o PL/SQL e tenho uma tabela de nome S_SRV_REQ ela tem dois campos de datas um que é data de abertura e o outro é a ultima data ativa, gostaria de saber como fazer dentro do SELECT uma condição para que ele traga o campo que esta com algum valor em uma variavel ...

exemplo

 

start

  Se data_ativa estiver nula

      então variavel = data_abertura

  senão

    variavel = data_artiva

fim

 

Desde já grato.

<{POST_SNAPBACK}>

declare

variavel date;

begin

select data_ativa into variavel from s_srv_req where...;

if variavel is null then

select data_abertura into variavel from s_srv_req where...;

...

end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.