Banco de dados oracle

Olá boa tarde, estou fazendo um banco de dados de um hort frut e queria saber quais são as melhores constraint pra mim estar utilizando nesses campos que estão no código abaixo, queria que me mostrassem alguns exemplos por que tentei fazer dessa maneira abaixo e esta dando erro não sei qual é o problema, se puderem me ajudar agradeço desde já.

Segue o codigo abaixo:

CREATE TABLE colaboradores(
  id_colaborador NUMBER(8),
  nome_colaborador VARCHAR2(40),
  cpf NUMBER(11), 
  telefone NUMBER(12),
  email VARCHAR2(50), 
  instituicao_ong VARCHAR(40), 
  data_retirada DATE,
  id_produto NUMBER(8),
  
  CONSTRAINT colaboradores_id_colaborador_pk PRIMARY KEY (id_colaborador),
  CONSTRAINT colaboradores_nome_colaborador_nn CHECK (nome_colaborador IS NOT NULL),
  CONSTRAINT colaboradores_cpf_nn CHECK (cpf IS NOT NULL),
  CONSTRAINT colaboradores_telefone_nn CHECK (telefone IS NOT NULL),
  CONSTRAINT colaboradores_email_nn CHECK (email IS NOT NULL),
  CONSTRAINT colaboradores_instituicao_ong_nn CHECK (instituicao_ong IS NOT NULL),
  CONSTRAINT colaboradores_data_retirada_produto_nn CHECK (data_retirada IS NOT NULL),
  CONSTRAINT colaboradores_id_produto_fk FOREIGN KEY (id_produto) REFERENCES produtos(id_produto)
);

Sempre quando for postar algo que está causando algum erro, é bom colocar qual erro está acontecendo. Assim fica mais fácil descobrir o que pode está acontecendo. Só pelo código, não consegui achar nada errado.

blz man vlw pela dica, ta dando um erro de parênteses

1 curtida

as vezes da esse erro também : ORA-00942: table or view does not exist

Usei o http://sqlfiddle.com/ para validar o sql e deu o erro: ORA-00972: identifier is too long. Os nomes dos objetos não podem ultrapassar 30 caracteres no oracle. Tente alterar os nomes das constraints.