Luis Enrique Moreno
Luis Enrique Moreno

Reputation: 13

PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following: := . ( @ % ;

What is wrong with my PLSQL?

CREATE OR REPLACE PROCEDURE REGISTRO_CLIENTE_TARJETA(
v_nombre IN VARCHAR2, 
v_ap_paterno IN VARCHAR2, 
v_ap_paterno IN VARCHAR2, 
v_rfc IN VARCHAR2, 
v_email IN VARCHAR2, 
v_direccion IN VARCHAR2, 
v_numero IN VARCHAR2, 
v_num_seg IN VARCHAR2, 
v_mes_exp IN VARCHAR2, 
v_anio_expiracion IN VARCHAR2)
AS
BEGIN 
INSERT INTO TARJETA_DE_CREDITO(TARJETA_ID, NUMERO, NUM_SEGURIDAD, MES_EXPIRACION, ANIO_EXPIRACION) 
VALUES(TARJETA_CREDITO_SEQ.NEXTVAL, v_numero, v_num_seg, v_mes_exp, v_anio_expiracion)

INSERT INTO CLIENTE(CLIENTE_ID,NOMBRE, AP_PATERNO, AP_MATERNO, RFC, EMAIL, DIRECCION, TARJETA_ID)
VALUES(CLIENTE_SEQ.NEXTVAL, v_nombre, v_ap_paterno, v_ap_paterno, v_rfc, v_email, v_direccion, (SELECT LAST_NUMBER FROM ALL_SEQUENCES WHERE SEQUENCE_NAME = 'TERCERO_SEQ'))

END;

I'm getting the following errors using the show errors command:

LINE/COL ERROR
-------- -----------------------------------------------------------------
14/1     PL/SQL: SQL Statement ignored
15/88    PL/SQL: ORA-00933: SQL command not properly ended
19/3     PLS-00103: Encountered the symbol "end-of-file" when expecting
         one of the following:
         := . ( @ % ;

Upvotes: 0

Views: 14011

Answers (1)

Lalit Kumar B
Lalit Kumar B

Reputation: 49062

The INSERT statements must end with a semi-colon.

insert into table (columns list) values (values list);

As a good practice, always compile your code in SQL*Plus and do SHOW ERROR. Look at the line number in the error stack. Without any EXCEPTION block (or with proper exception handling), you would get the correct line number. Try to debug your code by going to the line number and verify.

Upvotes: 1

Related Questions