Ir para conteúdo

POWERED BY:

Arquivado

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

yuki10

procedure

Recommended Posts

Bom dia a todos!Sou completamente novo no uso do banco de dados oracle, sempre utilizei sql nas minhas aplicações... mas sabe como é né, a vontade do cliente é a vontade superior, então... rssBom, estou apanhando desde o comecinho... Criei uma tabela simples, e nem consigo compilar uma procedure para consultá-la! rsA minha tabela é TB_CLIENTE. Tem apenas dois campos, cdCliente number not null, dsCliente varchar2 not null. Tentei criar uma procedure assim:create or replace procedure "PR_OBTER_CLIENTE"(p_cdcliente IN number default null)isbeginSELECT * FROM TB_CLIENTE WHERE ((p_cdCliente is null) or (cdCliente = p_cdCliente));end;Quando tento compilar a procedure, aparece o erro:Compilation failed,line 5 (12:49:50)PL/SQL: ORA-00904: "CDCLIENTE": identificador inválidoAlguém pode me indicar onde está meu erro?Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

1) não deve existir esta coluna na tabela

 

2) SELECT * FROM TB_CLIENTE WHERE ((p_cdCliente is null) or (cdCliente = p_cdCliente));

 

esta sintaxe esta errada, em plsql você tem de trazer o conteudo de um select para

 

2.1) uma variavel select codcli into v_codcli from cliente where codcli = pcodcli;

 

2.2) para ler mais de uma linha utilize um cursor

 

procure material sobre plsql em http://www.profissionaloracle.com.br/

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que eu preciso, é do resultado com uma ou mais linhas.Acessei o site indicado, porém, não encontrei nenhuma referência ao que eu preciso. Você pode dar um exemplo de como usar cursor em uma procedure?Obrigado!

1) não deve existir esta coluna na tabela2) SELECT * FROM TB_CLIENTE WHERE ((p_cdCliente is null) or (cdCliente = p_cdCliente));esta sintaxe esta errada, em plsql você tem de trazer o conteudo de um select para 2.1) uma variavel select codcli into v_codcli from cliente where codcli = pcodcli; 2.2) para ler mais de uma linha utilize um cursor procure material sobre plsql em http://www.profissionaloracle.com.br/

Compartilhar este post


Link para o post
Compartilhar em outros sites

DECLARE
  VN_TOTAL NUMBER := O;
BEGIN
	FOR R IN (SELECT VALOR_VENDAS
				   FROM VENDAS)
	LOOP
		VN_TOTAL := VN_TOTAL + R.VALOR_VENDAS;
	END LOOP;
	DBMS_OUTPUT.PUT_LINE(VN_TOTAL;
END;

Apenas para demonstrar o uso de um cursor.

 

Eu tenho um tutorial legal , me diz seu email que te envio.

Compartilhar este post


Link para o post
Compartilhar em outros sites

meu e-mail é yuki10@bol.com.brmuito obrigado!

DECLARE  VN_TOTAL NUMBER := O;BEGIN	FOR R IN (SELECT VALOR_VENDAS				   FROM VENDAS)	LOOP		VN_TOTAL := VN_TOTAL + R.VALOR_VENDAS;	END LOOP;	DBMS_OUTPUT.PUT_LINE(VN_TOTAL;END;
Apenas para demonstrar o uso de um cursor.Eu tenho um tutorial legal , me diz seu email que te envio.

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.