Dúvidas com campos not null

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
pnet1
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 73
Registrado em: Qui, 23 Jan 2020 9:12 pm

Em uma tabela os campos são NOT NULL. Gostaria de saber, se em uma PROC eu declaro esses campos, do tipo da tabela dessa forma:

Selecionar tudo

V_NR_REGISTRO_D  CARTA_QUITACAO.NR_REGISTRO%TYPE;
Gostaria de saber se eu posso inicializá-los como NULL, assim

Selecionar tudo

V_NR_REGISTRO_D   := NULL;
pnet1
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 73
Registrado em: Qui, 23 Jan 2020 9:12 pm

Pode ser que esteja retornando valores não dígitos numéricos. Fiz isso dentro da proc

Selecionar tudo

SELECT SUBSTR(V_REG, 21, 7) FROM DUAL;
Mas pede um INTO, fiz uma var do tipo UTL_FILE, mas diz retornar muitas linhas. Como eu faço?
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Se você cria uma variável baseada em um campo NOT NULL, isso não significa que sua variável seja NOT NULL.
Pelo contrário, no momento que você cria essa variável, ela JÁ É NULL. Mesmo sem inicializar ela como você fez:

Selecionar tudo

V_NR_REGISTRO_D   := NULL;
Setar uma variável para NULL é útil quando você está usando ela em um LOOP, daí você garante que no início do LOOP ela está vazia.
(Pra não pegar dados do loop anterior).

Sobre o INTO. Sim, em um bloco PLSQL tem que ter o INTO pra uma query solta.
Coloca a sua variável, caso seja essa que você criou.

Selecionar tudo

SELECT SUBSTR(V_REG, 21, 7) into V_NR_REGISTRO_D  FROM DUAL;
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 11 visitantes