Ir para conteúdo

Arquivado

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

ROVILSON

PLS-00201: identifier 'DBMS_RANDON' must be declared

Recommended Posts

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.