Ir para conteúdo

POWERED BY:

Arquivado

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

Nothunt

Erro ORA-01830

Recommended Posts

Olá!tenho um problema:estou a tentar inserir dados nesta tabela:

-- Start of DDL Script for Table NOTHUNT.COMPONENTES-- Generated 13-Mai-2007 21:08:46 from NOTHUNT@NOPROBLECREATE TABLE componentes    (id_componente                  NUMBER(6,0) NOT NULL,    id_tipo_aula                   NUMBER(6,0) NOT NULL,    id_disciplina                  NUMBER(6,0) NOT NULL,    id_utilizador                  NUMBER(6,0) NOT NULL,    id_motivo                      NUMBER(6,0),    num_horas_componente           NUMBER(2,0) NOT NULL,    data_inicio_componente         DATE NOT NULL,    data_u_alteracao_componente    DATE,    data_fim_componente            DATE,    obs_componente                 VARCHAR2(500))  PCTFREE     10  INITRANS    1  MAXTRANS    255  TABLESPACE  users  STORAGE   (    INITIAL     65536    MINEXTENTS  1    MAXEXTENTS  2147483645  )/-- Indexes for COMPONENTESCREATE INDEX tem_fk ON componentes  (    id_disciplina                   ASC  )  PCTFREE     10  INITRANS    2  MAXTRANS    255  TABLESPACE  users  STORAGE   (    INITIAL     65536    MINEXTENTS  1    MAXEXTENTS  2147483645  )/CREATE INDEX modulo_comp_fk ON componentes  (    id_tipo_aula                    ASC  )  PCTFREE     10  INITRANS    2  MAXTRANS    255  TABLESPACE  users  STORAGE   (    INITIAL     65536    MINEXTENTS  1    MAXEXTENTS  2147483645  )/CREATE INDEX alterar_componente_fk ON componentes  (    id_motivo                       ASC  )  PCTFREE     10  INITRANS    2  MAXTRANS    255  TABLESPACE  users  STORAGE   (    INITIAL     65536    MINEXTENTS  1    MAXEXTENTS  2147483645  )/CREATE INDEX com_def_por_fk ON componentes  (    id_utilizador                   ASC  )  PCTFREE     10  INITRANS    2  MAXTRANS    255  TABLESPACE  users  STORAGE   (    INITIAL     65536    MINEXTENTS  1    MAXEXTENTS  2147483645  )/-- Constraints for COMPONENTESALTER TABLE componentesADD CONSTRAINT pk_componentes PRIMARY KEY (id_componente)USING INDEX  PCTFREE     10  INITRANS    2  MAXTRANS    255  TABLESPACE  users  STORAGE   (    INITIAL     65536    MINEXTENTS  1    MAXEXTENTS  2147483645  )/-- Comments for COMPONENTESCOMMENT ON COLUMN componentes.data_fim_componente IS 'Campo que identifica a data em que a componente deixou de ser utilizada.'/COMMENT ON COLUMN componentes.data_inicio_componente IS 'Campo que identifica a data em que a componente começou a ser utilizada.'/COMMENT ON COLUMN componentes.id_componente IS 'Campo que identifica a componente de uma determinada disciplina.'/COMMENT ON COLUMN componentes.id_disciplina IS 'Campo que identifica uma disciplina. Disciplinas com o mesmo nome mas de cursos diferentes, sao tratadas como disciplinas diferentes.'/COMMENT ON COLUMN componentes.id_motivo IS 'Campo que identifica o motivo tabelado para possiveis alteraçoes em diversas tabelas (departamentos, funcionarios, disciplinas,....)'/COMMENT ON COLUMN componentes.id_tipo_aula IS 'Campo que identifica o Tipo de aula.'/COMMENT ON COLUMN componentes.id_utilizador IS 'Campo que identifica o Utilizador.'/COMMENT ON COLUMN componentes.num_horas_componente IS 'Campo que identifica o numero de horas semanais da componente.'/COMMENT ON COLUMN componentes.obs_componente IS 'Campo referente a outras informaçoes relevantes referentes à componente.'/-- End of DDL Script for Table NOTHUNT.COMPONENTES-- Foreign KeyALTER TABLE componentesADD CONSTRAINT fk_componen_alterar_motivos FOREIGN KEY (id_motivo)REFERENCES motivos (id_motivo)/ALTER TABLE componentesADD CONSTRAINT fk_componen_com_def_p_utilizad FOREIGN KEY (id_utilizador)REFERENCES utilizadores (id_utilizador)/ALTER TABLE componentesADD CONSTRAINT fk_componen_modulo_co_tipo_aul FOREIGN KEY (id_tipo_aula)REFERENCES tipo_aulas (id_tipo_aula)/ALTER TABLE componentesADD CONSTRAINT fk_componen_tem_discipli FOREIGN KEY (id_disciplina)REFERENCES disciplinas (id_disciplina)/-- End of DDL script for Foreig

Com o procedimento:

PROCEDURE INSERE_COMPONENTE(  INSINIDCOMPONENTE                IN    COMPONENTES.ID_COMPONENTE%TYPE,  INSINIDTAULA                     IN    COMPONENTES.ID_TIPO_AULA%TYPE,  INSINIDDISCIPLINA                IN    COMPONENTES.ID_DISCIPLINA%TYPE,  INSINIDUTILIZADOR                IN    COMPONENTES.ID_UTILIZADOR%TYPE,  INSINIDMOTIVO                    IN    COMPONENTES.ID_MOTIVO%TYPE,  INSINNUMHCOMPONENTE              IN    COMPONENTES.NUM_HORAS_COMPONENTE%TYPE,  INSINDINICOMPONENTE              IN    VARCHAR,  INSINDUALCOMPONENTE              IN    VARCHAR,  INSINDFIMCOMPONENTE              IN    VARCHAR,  INSINOBSCOMPONENTE               IN    COMPONENTES.OBS_COMPONENTE%TYPE,  DSCERRO                	 OUT 	VARCHAR,  CONTROLVAL				 OUT	INT)ISCONTADORES INT;INSOINDINICOMPONENTE         DATE;INSOINDUALTCOMPONENTE        DATE;INSOINDFIMCOMPONENTE         DATE;BEGINselect		COUNT(*) into CONTADORES	FROM		COMPONENTES	where		COMPONENTES.ID_COMPONENTE = INSINIDCOMPONENTE;if CONTADORES > 0 then	 CONTROLVAL := -2;	 ELSEINSOINDINICOMPONENTE  := TO_DATE(INSINDINICOMPONENTE , 'DD/MM/YYYY');INSOINDUALTCOMPONENTE  := TO_DATE(INSINDUALCOMPONENTE , 'DD/MM/YYYY');INSOINDFIMCOMPONENTE  := TO_DATE(INSINDFIMCOMPONENTE , 'DD/MM/YYYY');	   INSERT INTO   COMPONENTES(  ID_COMPONENTE,  ID_TIPO_AULA,  ID_DISCIPLINA,  ID_UTILIZADOR,  ID_MOTIVO,  NUM_HORAS_COMPONENTE,  DATA_INICIO_COMPONENTE,  DATA_U_ALTERACAO_COMPONENTE,  DATA_FIM_COMPONENTE,  OBS_COMPONENTE)VALUES(  INSINIDCOMPONENTE,  INSINIDTAULA,  INSINIDDISCIPLINA,  INSINIDUTILIZADOR,  INSINIDMOTIVO,  INSINNUMHCOMPONENTE,  INSOINDINICOMPONENTE,  INSOINDUALTCOMPONENTE,  INSOINDFIMCOMPONENTE,  INSINOBSCOMPONENTE);     CONTROLVAL :=0;    COMMIT;END IF;  EXCEPTION   WHEN ACCESS_INTO_NULL THEN      DSCERRO:= 'ATRIBUTO NULO';      ROLLBACK;   WHEN PROGRAM_ERROR THEN      DSCERRO:= 'ERRO INTERNO';      ROLLBACK;   WHEN LOGIN_DENIED THEN      DSCERRO:= 'ACESSO INVALIDO';      ROLLBACK;   WHEN NOT_LOGGED_ON THEN      DSCERRO:= 'NÃO ESTÁ ESTABELECIDA UMA CONEXÃO';      ROLLBACK;   WHEN OTHERS THEN      DSCERRO:= 'OCORREU UM ERRO INESPERADO: '||SQLERRM;	  ROLLBACK;END;

mas obtenho o resultado:

ORA-01830: a imagem do formato de data termina antes de converter toda a cadeia de caracteres de entrada de dados

como posso resolver a situação??abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Parece ter um erro numa conversão de data , poste o código da procedure todo.

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.