ROVILSON 0 Denunciar post Postado Março 27, 2016 Boa tarde amigos do fórum estou com esse probleminha ao tentar dar carga em uma tabela utilizando o comando dbms_random no oracle 11g Exatamente nesse comandos abaixo que esta dando o erro, quando tento utilizar o comando randômico para strings t := dbms_randon.string('U',20); ERRO: ORA-06550: linha 18, coluna 8: PLS-00201: identifier 'DBMS_RANDON' must be declared ORA-06550: linha 18, coluna 3: PL/SQL: Statement ignored Quando eu executo para valores ele funciona nesse comando por ex d := DBMS_RANDOM.VALUE(1,30); Funciona direitinho. SEGUE COMANDO COMPLETO. DECLARE k INTEGER; b VARCHAR2(60); t VARCHAR2(20); d INTEGER; e VARCHAR2(60); f INTEGER; g VARCHAR2(60); h VARCHAR2(20); i INTEGER; j VARCHAR2(2); begin dbms_random.initialize(158467); FOR N IN 1..30 LOOP k := N; b := dbms_randon.string('U',60); t := dbms_randon.string('U',20); d := DBMS_RANDOM.VALUE(1,30); e := dbms_randon.string('U',60); f := DBMS_RANDOM.VALUE(100,600); g := dbms_randon.string('U',60); h := dbms_randon.string('U',10); i := DBMS_RANDOM.VALUE(1,10); j := DBMS_RANDOM.VALUE(1,4); INSERT INTO notas (n_estudante, nome_estudante, curso, n_disciplina, nome_disciplina, cod_professor, nome_professor, categoria_professor, NOTA, semestre) VALUES (k,b,t,d,e,f,g,h,i,j); END LOOP; COMMIT; dbms_random.terminate; END; MINHA TABELA É A SEGUINTE: CREATE TABLE NOTAS ( N_estudante INTEGER NOT NULL , Nome_estudante VARCHAR2 (60 BYTE) , Curso VARCHAR2 (20 BYTE) , N_Disciplina INTEGER NOT NULL , Nome_Disciplina VARCHAR2 (60 BYTE) , Cod_professor INTEGER , Nome_professor VARCHAR2 (60 BYTE) , Categoria_professor VARCHAR2 (20 BYTE) , Nota INTEGER , Semestre VARCHAR2 (2 BYTE) ) ; ALTER TABLE NOTAS ADD CONSTRAINT NOTAS_PK PRIMARY KEY ( N_estudante, N_Disciplina ) ; Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Março 28, 2016 inicialmente tente dbms_random com "m" de Mike Compartilhar este post Link para o post Compartilhar em outros sites
Dlms 4 Denunciar post Postado Março 29, 2016 Bom dia, tem várias coisas que você pode considerar 1- com qual usuário está rodando? 2- ele tem permissão para rodar a DBMS? 3- como o amigo ai acima disse, quando dá esse erro é por que ou não tem permissão, ou sua função não existe, no seu caso tá parecendo o ultimo.. ela não é com N e sim com M, para o oracle é como se ela não existisse, por isso ele pede para declarar primeiro. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Março 29, 2016 Não entendi o problema. A package chama DBMS_RANDOM , com M de Mike, vem da palavra random (aleatório em inglês) Até onde lembre a package é de uso público para os users Oracle. Compartilhar este post Link para o post Compartilhar em outros sites
Dlms 4 Denunciar post Postado Abril 1, 2016 Bom dia queridos, Não tem problema algum a não ser o N, quando disse permissões falei de modo geral não cheguei a bater o olho no código dele a não ser olhar pro nome da função e ver o N. e ai concordei com você que o oracle não reconhece esse cara por isso ele pede para declarar. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Abril 1, 2016 Tranquilo Compartilhar este post Link para o post Compartilhar em outros sites