- Este tópico contém 2 respostas, 2 vozes e foi atualizado pela última vez 13 anos, 4 meses atrás por
gordeone.
-
AutorPosts
-
julho 21, 2010 às 7:05 pm #95168
gordeone
ParticipanteOla Galera, so novo no forum, sou desenvolvedor delphi e c# e estou com uma duvida, criei uma procedure e como parametro criei da seguinte forma
PROCEDURE InserirProcesso(vCOD_PLAS IN ENDI.COD_PLAS%Type,
vORDEM_COMPRA IN TD_ENTREGA_ORDEM_COMPRA.NUM_ORDEM_COMPRA%TYPE) IS
o tratamentro é o abaixo
if ((vCOD_PLAS = 1409 or vCOD_PLAS = 1261) and (vORDEM_COMPRA > 0)) then
INSERT INTO TD_ENTREGA_ORDEM_COMPRA (NUM_PROCESSO, NUM_ORDEM_COMPRA)
VALUES (vNUM_PROCESSO, vORDEM_COMPRA);
end if;testando pelo PLSQL vai numa boa, porém pelo delphi ele nao insere, dai o que eu fiz
criei esta variavel
lc_plas endi.cod_plas%type := vCOD_PLAS;
e no if eu passei a nova variavel e nao a primeira, dai funcionou de boa pelo delphi e pelo PL
a minha duvida é a seguinte, porque comparando uma variavel que tem o nome semelhante ao campo da tabela ele nao compara e sim temos que criar uma variavel com nome diferente para dar certo, ou nao tem nada a ver ? e o problema é outro ?julho 21, 2010 às 8:29 pm #95171Bogos
ParticipanteÉ um erro quase que comum este.
Numa instrução SQL dentro de um bloco PL/SQL, o Oracle da preferência aos nomes dos objetos na instrução, e caso não encontre é que ele varre as variáveis e objetos fora dela, ou seja, do bloco.
Se caso numa instrução a tabela contenha um campo chamado “codigo” e você use este nome dentro do SQL, ele assumirá o valor do campo da tabela, e não de uma variável do bloco PL/SQL em que a instrução se encontra.Nessas horas é que os padrões de nomes se mostram úteis 😀
Abraços!
julho 21, 2010 às 9:18 pm #95174gordeone
Participante[quote=”Bogos”:3tjysrqu]É um erro quase que comum este.
Numa instrução SQL dentro de um bloco PL/SQL, o Oracle da preferência aos nomes dos objetos na instrução, e caso não encontre é que ele varre as variáveis e objetos fora dela, ou seja, do bloco.
Se caso numa instrução a tabela contenha um campo chamado “codigo” e você use este nome dentro do SQL, ele assumirá o valor do campo da tabela, e não de uma variável do bloco PL/SQL em que a instrução se encontra.Nessas horas é que os padrões de nomes se mostram úteis 😀
Abraços![/quote]
entao Bogos, só que assim, eu utilizei um nome parecido e nao o nome exato mesmo assim ele ja assume ? um exemplo o campo na tabela é cod_plas a variavel que eu criei foi vCod_plas, mesmo assim deu o problema que eu falei, tive de criar uma variavel com nome totalmente diferente para passar a instrução certa, é assim mesmo ?
-
AutorPosts
- Você deve fazer login para responder a este tópico.
Compartilhe ! Além de ajudar, é legal ! :)
- Clique para compartilhar no Twitter(abre em nova janela)
- Clique para compartilhar no Facebook(abre em nova janela)
- Clique para compartilhar no LinkedIn(abre em nova janela)
- Clique para compartilhar no Reddit(abre em nova janela)
- Clique para compartilhar no WhatsApp(abre em nova janela)
- Clique para compartilhar no Telegram(abre em nova janela)
- Clique para enviar um link por e-mail para um amigo(abre em nova janela)
- Clique para imprimir(abre em nova janela)