- Este tópico contém 27 respostas, 2 vozes e foi atualizado pela última vez 17 anos, 6 meses atrás por
rodfbar.
-
AutorPosts
-
3 de setembro de 2008 às 9:09 pm #82637
Anônimo
rodfbar, agora deu certo.
Outra pergunta “VV_CLIENTE” é uma variavel com diversos registros?
Seria um “RecordSet”?4 de setembro de 2008 às 3:40 pm #82645rodfbar
Participanteola Ana… neste caso esta variavel trabalha apenas com um registro por vez….
se vc quiser uma variavel multirecord (matriz) vc pode criar dessas 2 formas:
DECLARE
TYPE VVETOR IS RECORD("COLUNA1" "TIPO", "COLUNA2" "TIPO"...);/TYPE VETOR CRIADO MANUALMENTE/
TYPE T_MATRIZ IS TABLE OF VVETOR;/TYPE MATRIZ/
VMATRIZ T_MATRIZ;/OU CRIADO DESTA FORMA/
TYPE T_MATRIZ IS TABLE OF "TABELA"%ROWTYPE; /TYPE MATRIZ/
VMATRIZ T_MATRIZ;
essa seria sua declaração
para utilizar variaveis multirecord vc precisa de um indice pra mesma iniciado com 1, ou vc pode acessar os registros estaticamente( 1…2…3)
no exemplo com indice dinamico
DECLARE
/declarar os type como mostrado acima/
I NUMBER := 1;
BEGIN
V_MATRIZ := T_MATRIZ(NULL);/INICIALIZA SUA MATRIZ/
LOOP
V_MATRIZ(I)."COLUNA1" := "VALOR"
.
.
.
/FAZ ALGUMA VERIFICAÇÃO SE VAI TER MAIS ALGUM REGISTRO NA MATRIZ/
/SE TIVER/
V_MATRIZ(I).EXTEND;
I := I+1;
/SE NAO/
EXIT;
END LOOP;
END;
espero que ajude[/code]
4 de setembro de 2008 às 9:00 pm #82647Anônimo
rodfbar, me expressei errado a pergunta é “VV_Cliente” seria uma variavel com 1 registro e diversos campos (codigo,nome,endereco,data…).
Desculpa4 de setembro de 2008 às 10:59 pm #82650Anônimo
rodfbar, me expressei errado a pergunta é “VV_Cliente” seria uma variavel com 1 registro e diversos campos codigo,nome,endereco,data, etc…).
Outra coisa como faço para executar esta function de dentro do banco para ver se ela esta rodando.5 de setembro de 2008 às 3:27 pm #82657rodfbar
Participanteola…
sim ela eh uma variavel do tipo vetor
porisso pra acessar um atributo dela vc usa: variavel.atributo
abrçs
5 de setembro de 2008 às 3:52 pm #82659rodfbar
Participanteesse tipo de função pra testar no banco é um pouco mais trabalhosa..
acredito q pra nao tomar muito seu tempo.. a forma mais rapida pra vc testar é:
declare
-- Local variables here
i CLIENTE%ROWTYPE;
begin
-- Test statements here
i := SP_BUSCA(1);
--
raise_application_error(-20001,'Código:' || i.codigo || ' Nome:' || i.nome ... );
end;
5 de setembro de 2008 às 8:08 pm #82663Anônimo
rodfbar, te perguntei isso porque “acho” que a linguagem que estou usando não dá suporte para “FUNCTION” só para Procedure. Daí pensei testar a function primeiro depois rodar pelo ASP.
Só que esta dando o erro.
“Microsoft OLE DB Provider for Oracle (0x80004005)
“Este provedor não oferece suporte a funções/procedimentos armazenados PL/SQL com argumentos RECORD ou TABLE.”
Se vc puder me ajudar obrigada de novo5 de setembro de 2008 às 8:36 pm #82664rodfbar
Participante😯
intendi… realmente pra vc vai ser cruel….
bom o teste q te passei vc conseguiu rodar??
nunca trabalhei com asp portanto nao sei se vou conseguir te dar a melhor solução..
o q vc poderia fazer é criar uma package com varias funções… uma para retornar o nome, outra para endereço, etc… mais sua aplicação vai ficar muito pesada, pois vai rodar varias vezes o mesmo select…
usar aqueles parametros do tipo out nao resolveriam o seu caso? a linguagem que vc esta utilizando suporta esse tipo de parametro?
abrçs
5 de setembro de 2008 às 9:23 pm #82665Anônimo
rodfbar, o teste que vc me passou funcionou beleza.
O problema esta em passar estas informações para fora do DB.
Parametros OUT pode ser que funcionem só que se eu pegar um form com diversos campos vai ter que codificar muito.
Mesmo assim obrigada pela ajuda.5 de setembro de 2008 às 10:34 pm #82672Anônimo
rodfbar, o teste que vc m passou funcionou beleza.
O problema esta em passar estas informações para fora do DB.
Parametros OUT pode ser que funcionem só que se eu pegar um form com diversos campos vai ter que codificar muito.
Mesmo assim obrigada pela ajuda.
E para testar uma procedure insert como fazer?8 de setembro de 2008 às 3:58 pm #82678rodfbar
Participanteola Ana….
procedure para insert acho q vc poderia simplesmente tratar o erro
exemplo:
begin
insert
exception
when others then
raise_application_error(-20001,'Erro:' || SQLERRM);
end;
dessa forma se ocorrer algum erro no seu insert ele vai retornar como erro de execução para seu código… dai vc consegue tratar com algum tipo de “try{ cacth{” dai nao sei como o asp trata erros… mas seria +- isso
abrçs…
8 de setembro de 2008 às 9:26 pm #82683Anônimo
Privilégios de Usuário Atribuições:
CONNECT RESOURCEPrivilégios de Sistema Concedidos Diretamente:
CREATE DATABASE LINK
CREATE MATERIALIZED VIEW
CREATE PROCEDURE
CREATE PUBLIC SYNONYM
CREATE ROLE CREATE SEQUENCE
CREATE SYNONYM
CREATE TABLE CREATE TRIGGER
CREATE TYPE CREATE VIEWrodfbar, sobre meu codigo em asp não aceitar function, estive olhando no gerenciador de usuarios e detectei que não tem “function” existe apenas a lista acima.
Será que tem que atualizar o oracle. A versão que uso é 10g.9 de setembro de 2008 às 4:01 pm #82690rodfbar
Participantemais he seu código em asp q nao aceita function ou vc nao esta conseguindo criar o objeto no banco???
qndo vc da um create function no banco aparece alguma mensagem pra vc?
abrçs
-
AutorPosts
- Você deve fazer login para responder a este tópico.