Pular para o conteúdo
Visualizando 9 posts - 1 até 9 (de 9 do total)
  • Autor
    Posts
  • #83172
    gracianow
    Participante

      sempre surge um erro para atrapalhar e aggora e na regiao do begin transaction ele insiste neste erro:

      Error(80,12): PLS-00103: Encontrado o símbolo “VARCHAR” quando um dos seguintes símbolos era esperado: . ( ) , * @ % & | = – + < / > at in is mod not range rem => .. <> or != or ~= >= <= <> and or like as between from using || O símbolo “.” foi substituído por “VARCHAR” para continuar.

      Olha o code:

      create or replace
      PROCEDURE PRC_SAC_INSEREENTREVISTA
      (P_IDADE IN NUMBER, P_SEXO IN CHAR, P_ID_ESCOLAPAC IN NUMBER, P_ID_FORM IN NUMBER,
      P_PERIODO_REFERENCIA IN VARCHAR, P_ID_ESPECPAC IN NUMBER, P_ID_INTENFER IN NUMBER,
      P_ID_SUBPERG_01 IN NUMBER, P_ID_NOTATEND_01 IN NUMBER, P_ID_RESPTEXTO_01 IN VARCHAR,
      P_ID_SUBPERG_02 IN NUMBER, P_ID_NOTATEND_02 IN NUMBER, P_ID_RESPTEXTO_02 IN VARCHAR,
      P_ID_SUBPERG_03 IN NUMBER, P_ID_NOTATEND_03 IN NUMBER, P_ID_RESPTEXTO_03 IN VARCHAR,
      P_ID_SUBPERG_04 IN NUMBER, P_ID_NOTATEND_04 IN NUMBER, P_ID_RESPTEXTO_04 IN VARCHAR)

      IS

      PRAGMA AUTONOMOUS_TRANSACTION;

      P_ID_PACIENTE NUMBER(10);
      P_ID_ENTRV NUMBER(10);
      /*P_DT_ENTRV DATE;*/

      BEGIN

      INSERT INTO TB_PACIENTE (IDADE, ID_SEXO_PACIENTE, ID_ESCOLARIDADE_PACIENTE, ID_ESPECIALIDADE_PACIENTE, ID_INT_ENFERMARIA)
      VALUES (P_ID_PACIENTE, P_IDADE, P_SEXO, P_ID_ESCOLAPAC, P_ID_ESPECPAC, P_ID_INTENFER);
      /* SET P_ID_PACIENTE=P_P_IDENTITY */
      /*P_ID_PACIENTE := SEQ_ID_PACIENTE.NEXTVAL*/
      SELECT SEQ_ID_PACIENTE.NEXTVAL INTO P_ID_PACIENTE FROM DUAL;

      /* SET P_DT_ENTRV = ISNULL(P_PERIODO_REFERENCIA,CONVERT( VARCHAR(16),GETDATE(),20)) */
      /*P_DT_ENTRV := NVL(P_PERIODO_REFERENCIA, TO_CHAR(P_PERIODO_REFERENCIA), SYSDATE)*/

      INSERT INTO TB_ENTRV (DT_ENTRV, ID_FORM, ID_PACIENTE)
      VALUES (SYSDATE, P_ID_FORM, P_ID_PACIENTE);

      /* SET P_ID_ENTRV=P_P_IDENTITY */
      /*P_ID_ENTRV := SEQ_ID_ENTRV.NEXTVAL*/

      SELECT SEQ_ID_ENTRV.NEXTVAL INTO P_ID_ENTRV FROM DUAL;

      COMMIT;

      BEGIN TRANSACTION

      (

      V_SQL VARCHAR(999);

      /* SET XACT_ABORT ON */
      V_SQL := INSERT INTO TB_PACIENTE (IDADE, ID_SEXO_PACIENTE, ID_ESCOLARIDADE_PACIENTE, ID_ESPECIALIDADE_PACIENTE, ID_INT_ENFERMARIA)
      VALUES (P_IDADE, P_SEXO, P_ID_ESCOLAPAC, P_ID_ESPECPAC, P_ID_INTENFER);
      /* SET P_ID_PACIENTE=P_P_IDENTITY */
      /* P_ID_PACIENTE := SEQ_ID_PACIENTE.NEXTVAL */

      V_SQL := SELECT SEQ_ID_PACIENTE.NEXTVAL INTO P_ID_PACIENTE FROM DUAL;

      /* SET P_DT_ENTRV = ISNULL(P_PERIODO_REFERENCIA,CONVERT( VARCHAR(16),GETDATE(),20)) */
      /*P_DT_ENTRV := NVL(P_PERIODO_REFERENCIA, TO_CHAR((P_PERIODO_REFERENCIA, SYSDATE)*/

      V_SQL := INSERT INTO TB_ENTRV (DT_ENTRV, ID_FORM, ID_PACIENTE)
      VALUES (SYSDATE, P_ID_FORM, P_ID_PACIENTE);

      /* SET P_ID_ENTRV=P_P_IDENTITY */
      /*P_ID_ENTRV := SEQ_ID_ENTRV.NEXTVAL*/

      V_SQL := SELECT SEQ_ID_PACIENTE.NEXTVAL INTO P_ID_PACIENTE FROM DUAL;

      — IF v_versao IS NULL THEN EXECUTE v_nome; END IF;

      IF (P_ID_SUBPERG_01 IS NOT NULL) THEN EXECUTE.PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_01, ID_RESPTEXTO_01, P_ID_NOTATEND_01); END IF;
      IF (P_ID_SUBPERG_02 IS NOT NULL) THEN EXECUTE.PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_02, P_ID_RESPTEXTO_02, P_ID_NOTATEND_02); END IF;
      IF (P_ID_SUBPERG_03 IS NOT NULL) THEN EXECUTE.PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_03, P_ID_RESPTEXTO_03, P_ID_NOTATEND_03); END IF;
      IF (P_ID_SUBPERG_04 IS NOT NULL) THEN EXECUTE.PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_04, P_ID_RESPTEXTO_04, P_ID_NOTATEND_04); END IF;

      EXCEPTION
      WHEN OTHERS
      DBMS_OUTPUT.PUT_LINE (‘Operação não realizada’);
      COMMIT;

      END; )

      END PRC_SAC_INSEREENTREVISTA;

      #83173
      Anônimo

        [quote=”gracianow”:3qw6im6g]sempre surge um erro para atrapalhar e aggora e na regiao do begin transaction ele insiste neste erro:

        Error(80,12): PLS-00103: Encontrado o símbolo “VARCHAR” quando um dos seguintes símbolos era esperado: . ( ) , * @ % & | = – + < / > at in is mod not range rem => .. <> or != or ~= >= <= <> and or like as between from using || O símbolo “.” foi substituído por “VARCHAR” para continuar.

        Olha o code:

        create or replace
        PROCEDURE PRC_SAC_INSEREENTREVISTA
        (P_IDADE IN NUMBER, P_SEXO IN CHAR, P_ID_ESCOLAPAC IN NUMBER, P_ID_FORM IN NUMBER,
        P_PERIODO_REFERENCIA IN VARCHAR, P_ID_ESPECPAC IN NUMBER, P_ID_INTENFER IN NUMBER,
        P_ID_SUBPERG_01 IN NUMBER, P_ID_NOTATEND_01 IN NUMBER, P_ID_RESPTEXTO_01 IN VARCHAR,
        P_ID_SUBPERG_02 IN NUMBER, P_ID_NOTATEND_02 IN NUMBER, P_ID_RESPTEXTO_02 IN VARCHAR,
        P_ID_SUBPERG_03 IN NUMBER, P_ID_NOTATEND_03 IN NUMBER, P_ID_RESPTEXTO_03 IN VARCHAR,
        P_ID_SUBPERG_04 IN NUMBER, P_ID_NOTATEND_04 IN NUMBER, P_ID_RESPTEXTO_04 IN VARCHAR)

        IS

        PRAGMA AUTONOMOUS_TRANSACTION;

        P_ID_PACIENTE NUMBER(10);
        P_ID_ENTRV NUMBER(10);
        /*P_DT_ENTRV DATE;*/

        BEGIN

        INSERT INTO TB_PACIENTE (IDADE, ID_SEXO_PACIENTE, ID_ESCOLARIDADE_PACIENTE, ID_ESPECIALIDADE_PACIENTE, ID_INT_ENFERMARIA)
        VALUES (P_ID_PACIENTE, P_IDADE, P_SEXO, P_ID_ESCOLAPAC, P_ID_ESPECPAC, P_ID_INTENFER);
        /* SET P_ID_PACIENTE=P_P_IDENTITY */
        /*P_ID_PACIENTE := SEQ_ID_PACIENTE.NEXTVAL*/
        SELECT SEQ_ID_PACIENTE.NEXTVAL INTO P_ID_PACIENTE FROM DUAL;

        /* SET P_DT_ENTRV = ISNULL(P_PERIODO_REFERENCIA,CONVERT( VARCHAR(16),GETDATE(),20)) */
        /*P_DT_ENTRV := NVL(P_PERIODO_REFERENCIA, TO_CHAR(P_PERIODO_REFERENCIA), SYSDATE)*/

        INSERT INTO TB_ENTRV (DT_ENTRV, ID_FORM, ID_PACIENTE)
        VALUES (SYSDATE, P_ID_FORM, P_ID_PACIENTE);

        /* SET P_ID_ENTRV=P_P_IDENTITY */
        /*P_ID_ENTRV := SEQ_ID_ENTRV.NEXTVAL*/

        SELECT SEQ_ID_ENTRV.NEXTVAL INTO P_ID_ENTRV FROM DUAL;

        COMMIT;

        BEGIN TRANSACTION

        (

        V_SQL VARCHAR(999);

        /* SET XACT_ABORT ON */
        V_SQL := INSERT INTO TB_PACIENTE (IDADE, ID_SEXO_PACIENTE, ID_ESCOLARIDADE_PACIENTE, ID_ESPECIALIDADE_PACIENTE, ID_INT_ENFERMARIA)
        VALUES (P_IDADE, P_SEXO, P_ID_ESCOLAPAC, P_ID_ESPECPAC, P_ID_INTENFER);
        /* SET P_ID_PACIENTE=P_P_IDENTITY */
        /* P_ID_PACIENTE := SEQ_ID_PACIENTE.NEXTVAL */

        V_SQL := SELECT SEQ_ID_PACIENTE.NEXTVAL INTO P_ID_PACIENTE FROM DUAL;

        /* SET P_DT_ENTRV = ISNULL(P_PERIODO_REFERENCIA,CONVERT( VARCHAR(16),GETDATE(),20)) */
        /*P_DT_ENTRV := NVL(P_PERIODO_REFERENCIA, TO_CHAR((P_PERIODO_REFERENCIA, SYSDATE)*/

        V_SQL := INSERT INTO TB_ENTRV (DT_ENTRV, ID_FORM, ID_PACIENTE)
        VALUES (SYSDATE, P_ID_FORM, P_ID_PACIENTE);

        /* SET P_ID_ENTRV=P_P_IDENTITY */
        /*P_ID_ENTRV := SEQ_ID_ENTRV.NEXTVAL*/

        V_SQL := SELECT SEQ_ID_PACIENTE.NEXTVAL INTO P_ID_PACIENTE FROM DUAL;

        — IF v_versao IS NULL THEN EXECUTE v_nome; END IF;

        IF (P_ID_SUBPERG_01 IS NOT NULL) THEN EXECUTE.PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_01, ID_RESPTEXTO_01, P_ID_NOTATEND_01); END IF;
        IF (P_ID_SUBPERG_02 IS NOT NULL) THEN EXECUTE.PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_02, P_ID_RESPTEXTO_02, P_ID_NOTATEND_02); END IF;
        IF (P_ID_SUBPERG_03 IS NOT NULL) THEN EXECUTE.PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_03, P_ID_RESPTEXTO_03, P_ID_NOTATEND_03); END IF;
        IF (P_ID_SUBPERG_04 IS NOT NULL) THEN EXECUTE.PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_04, P_ID_RESPTEXTO_04, P_ID_NOTATEND_04); END IF;

        EXCEPTION
        WHEN OTHERS
        DBMS_OUTPUT.PUT_LINE (‘Operação não realizada’);
        COMMIT;

        END; )

        END PRC_SAC_INSEREENTREVISTA;[/quote]

        Qando tem um campo varchar vc tem que especificar o tamanho desse campo então onde tem varchar coloca (100) que siguinifica te terão 100 caracteres para este campo
        mas ér melhor usar o varchar2 (a quantidade não importa) ele armazena no banco só o que vc usar mas tem que ter a quanridade certa

        exemplo vc diz que aquele campo vai ter 200 caracteres e vc só digita 100 ele aramzena 100 e não os 200 que vc tenha determinado
        isso faz uma grande diferença no futuro

        #83190
        gracianow
        Participante

          Valeu nilson_giap;

          To por dentro dos valores do varchar e segui sua sugestão de usar o varchar2, mas parece que o erro é em relação a transaction pois dentro dela os comandos (querys) não são reconecidos, creio que falta algo nesta sintaxe para atribuir valor a variavel V_SQL que recebe as querys que serão executadas.
          Pode dar uma força nisto ai??

          #83203
          Ishii
          Participante

            Olá,

            A variável V_SQL deve estar declarada no inicio da Procedure…

            create or replace
            PROCEDURE PRC_SAC_INSEREENTREVISTA
            (P_IDADE IN NUMBER, P_SEXO IN CHAR, P_ID_ESCOLAPAC IN NUMBER, P_ID_FORM IN NUMBER,
            P_PERIODO_REFERENCIA IN VARCHAR, P_ID_ESPECPAC IN NUMBER, P_ID_INTENFER IN NUMBER,
            P_ID_SUBPERG_01 IN NUMBER, P_ID_NOTATEND_01 IN NUMBER, P_ID_RESPTEXTO_01 IN VARCHAR,
            P_ID_SUBPERG_02 IN NUMBER, P_ID_NOTATEND_02 IN NUMBER, P_ID_RESPTEXTO_02 IN VARCHAR,
            P_ID_SUBPERG_03 IN NUMBER, P_ID_NOTATEND_03 IN NUMBER, P_ID_RESPTEXTO_03 IN VARCHAR,
            P_ID_SUBPERG_04 IN NUMBER, P_ID_NOTATEND_04 IN NUMBER, P_ID_RESPTEXTO_04 IN VARCHAR)

            IS

            PRAGMA AUTONOMOUS_TRANSACTION;

            P_ID_PACIENTE NUMBER(10);
            P_ID_ENTRV NUMBER(10);
            /*P_DT_ENTRV DATE;*/

            V_SQL VARCHAR(999);

            []s Ishii

            #83205
            gracianow
            Participante

              Muito grato Ishii;

              o problema maior é a insistencia de não se aceitar os comandos que a variavel vai receber na transaction:

              Error(79,4): PLS-00103: Encontrado o símbolo “V_SQL” quando um dos seguintes símbolos era esperado: := . ( @ % ;

              a linha é: V_SQL := INSERT INTO TB_PACIENTE (IDADE, ID_SEXO_PACIENTE, ID_ESCOLARIDADE_PACIENTE, ID_ESPECIALIDADE_PACIENTE, ID_INT_ENFERMARIA) VALUES (P_IDADE, P_SEXO, P_ID_ESCOLAPAC, P_ID_ESPECPAC, P_ID_INTENFER);

              o code é:

              create or replace PROCEDURE PRC_SAC_INSEREENTREVISTA
              (P_IDADE IN NUMBER, P_SEXO IN CHAR, P_ID_ESCOLAPAC IN NUMBER, P_ID_FORM IN NUMBER,
              P_PERIODO_REFERENCIA IN VARCHAR, P_ID_ESPECPAC IN NUMBER, P_ID_INTENFER IN NUMBER,
              P_ID_SUBPERG_01 IN NUMBER, P_ID_NOTATEND_01 IN NUMBER, P_ID_RESPTEXTO_01 IN VARCHAR,
              P_ID_SUBPERG_02 IN NUMBER, P_ID_NOTATEND_02 IN NUMBER, P_ID_RESPTEXTO_02 IN VARCHAR,
              P_ID_SUBPERG_03 IN NUMBER, P_ID_NOTATEND_03 IN NUMBER, P_ID_RESPTEXTO_03 IN VARCHAR,
              P_ID_SUBPERG_04 IN NUMBER, P_ID_NOTATEND_04 IN NUMBER, P_ID_RESPTEXTO_04 IN VARCHAR)

              IS

              PRAGMA AUTONOMOUS_TRANSACTION;

              P_ID_PACIENTE NUMBER(10);
              P_ID_ENTRV NUMBER(10);
              V_SQL VARCHAR(999);

              BEGIN

              INSERT INTO TB_PACIENTE (IDADE, ID_SEXO_PACIENTE, ID_ESCOLARIDADE_PACIENTE, ID_ESPECIALIDADE_PACIENTE, ID_INT_ENFERMARIA)
              VALUES (P_ID_PACIENTE, P_IDADE, P_SEXO, P_ID_ESCOLAPAC, P_ID_ESPECPAC, P_ID_INTENFER);
              /* SET P_ID_PACIENTE=P_P_IDENTITY */
              /*P_ID_PACIENTE := SEQ_ID_PACIENTE.NEXTVAL*/
              SELECT SEQ_ID_PACIENTE.NEXTVAL INTO P_ID_PACIENTE FROM DUAL;

              /* SET P_DT_ENTRV = ISNULL(P_PERIODO_REFERENCIA,CONVERT( VARCHAR(16),GETDATE(),20)) */
              /*P_DT_ENTRV := NVL(P_PERIODO_REFERENCIA, TO_CHAR(P_PERIODO_REFERENCIA), SYSDATE)*/

              INSERT INTO TB_ENTRV (DT_ENTRV, ID_FORM, ID_PACIENTE)
              VALUES (SYSDATE, P_ID_FORM, P_ID_PACIENTE);

              /* SET P_ID_ENTRV=P_P_IDENTITY */
              /*P_ID_ENTRV := SEQ_ID_ENTRV.NEXTVAL*/

              SELECT SEQ_ID_ENTRV.NEXTVAL INTO P_ID_ENTRV FROM DUAL;

              COMMIT;

              BEGIN TRANSACTION

              (

              V_SQL := INSERT INTO TB_PACIENTE (IDADE, ID_SEXO_PACIENTE, ID_ESCOLARIDADE_PACIENTE, ID_ESPECIALIDADE_PACIENTE, ID_INT_ENFERMARIA) VALUES (P_IDADE, P_SEXO, P_ID_ESCOLAPAC, P_ID_ESPECPAC, P_ID_INTENFER);

              V_SQL := SELECT SEQ_ID_PACIENTE.NEXTVAL INTO P_ID_PACIENTE FROM DUAL;

              V_SQL := INSERT INTO TB_ENTRV (DT_ENTRV, ID_FORM, ID_PACIENTE)
              VALUES (SYSDATE, P_ID_FORM, P_ID_PACIENTE);

              V_SQL := SELECT SEQ_ID_PACIENTE.NEXTVAL INTO P_ID_PACIENTE FROM DUAL;

              — IF v_versao IS NULL THEN EXECUTE v_nome; END IF;

              IF (P_ID_SUBPERG_01 IS NOT NULL) THEN EXECUTE.PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_01, ID_RESPTEXTO_01, P_ID_NOTATEND_01); END IF;
              IF (P_ID_SUBPERG_02 IS NOT NULL) THEN EXECUTE.PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_02, P_ID_RESPTEXTO_02, P_ID_NOTATEND_02); END IF;
              IF (P_ID_SUBPERG_03 IS NOT NULL) THEN EXECUTE.PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_03, P_ID_RESPTEXTO_03, P_ID_NOTATEND_03); END IF;
              IF (P_ID_SUBPERG_04 IS NOT NULL) THEN EXECUTE.PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_04, P_ID_RESPTEXTO_04, P_ID_NOTATEND_04); END IF;

              EXCEPTION
              WHEN OTHERS
              DBMS_OUTPUT.PUT_LINE (‘Operação não realizada’);
              COMMIT;

              END; )

              END PRC_SAC_INSEREENTREVISTA;

              Pode analisar por favor??

              #83209
              Ishii
              Participante

                Olá,

                Vou fazer melhor para você. Procure a Documentação sobre o DBMS_SQL ou SQL Dinâmico e verifique como utilizá-la, tenho certeza que você vai entender pois é isso mesmo que você está querendo fazer….

                []s Ishii

                #83228
                gracianow
                Participante

                  Legal Ishii!!!

                  Meuu li o SQL dinamico e abriu minha mente para melhorar o código e eliminei muitos erros; agora creio que só falta a correta declaração de como chamar uma procedure dentro de outrna no sql Dinamico;

                  Este é o Erro:

                  Error(113,39): PLS-00201: o identificador ‘EXECUTE.PRC_INSERETBRESP’ deve ser declarado

                  E o Code:

                  create or replace
                  PROCEDURE PRC_SAC_INSEREENTREVISTA
                  (P_IDADE IN NUMBER, P_SEXO IN CHAR, P_ID_ESCOLAPAC IN NUMBER, P_ID_FORM IN NUMBER,
                  P_PERIODO_REFERENCIA IN VARCHAR, P_ID_ESPECPAC IN NUMBER, P_ID_INTENFER IN NUMBER,
                  P_ID_SUBPERG_01 IN NUMBER, P_ID_NOTATEND_01 IN NUMBER, P_ID_RESPTEXTO_01 IN VARCHAR,
                  P_ID_SUBPERG_02 IN NUMBER, P_ID_NOTATEND_02 IN NUMBER, P_ID_RESPTEXTO_02 IN VARCHAR,
                  P_ID_SUBPERG_03 IN NUMBER, P_ID_NOTATEND_03 IN NUMBER, P_ID_RESPTEXTO_03 IN VARCHAR,
                  P_ID_SUBPERG_04 IN NUMBER, P_ID_NOTATEND_04 IN NUMBER, P_ID_RESPTEXTO_04 IN VARCHAR
                  )

                  IS

                  PRAGMA AUTONOMOUS_TRANSACTION;

                  P_ID_PACIENTE NUMBER(10);
                  P_ID_ENTRV NUMBER(10);
                  V_SQL VARCHAR2(500);
                  V_SQL2 VARCHAR2(500);
                  V_SQL3 VARCHAR2(500);
                  V_SQL4 VARCHAR2(500);

                  BEGIN

                  INSERT INTO TB_PACIENTE (IDADE, ID_SEXO_PACIENTE, ID_ESCOLARIDADE_PACIENTE, ID_ESPECIALIDADE_PACIENTE, ID_INT_ENFERMARIA)
                  VALUES (P_IDADE, P_SEXO, P_ID_ESCOLAPAC, P_ID_ESPECPAC, P_ID_INTENFER);

                  /* SET P_ID_PACIENTE=P_P_IDENTITY */
                  /*P_ID_PACIENTE := SEQ_ID_PACIENTE.NEXTVAL*/

                  SELECT SEQ_ID_PACIENTE.NEXTVAL INTO P_ID_PACIENTE FROM DUAL;

                  /* SET P_DT_ENTRV = ISNULL(P_PERIODO_REFERENCIA,CONVERT( VARCHAR(16),GETDATE(),20)) */
                  /*P_DT_ENTRV := NVL(P_PERIODO_REFERENCIA, TO_CHAR(P_PERIODO_REFERENCIA), SYSDATE)*/

                  INSERT INTO TB_ENTRV (DT_ENTRV, ID_FORM, ID_PACIENTE)
                  VALUES (SYSDATE, P_ID_FORM, P_ID_PACIENTE);

                  /* SET P_ID_ENTRV=P_P_IDENTITY */
                  /*P_ID_ENTRV := SEQ_ID_ENTRV.NEXTVAL*/

                  SELECT SEQ_ID_ENTRV.NEXTVAL INTO P_ID_ENTRV FROM DUAL;

                  COMMIT;

                  BEGIN

                  /* SET XACT_ABORT ON */
                  V_SQL := ‘INSERT INTO TB_PACIENTE (IDADE, ID_SEXO_PACIENTE, ID_ESCOLARIDADE_PACIENTE, ID_ESPECIALIDADE_PACIENTE, ID_INT_ENFERMARIA)
                  VALUES (P_IDADE, P_SEXO, P_ID_ESCOLAPAC, P_ID_ESPECPAC, P_ID_INTENFER);’;

                  EXECUTE IMMEDIATE V_SQL;
                  /* SET P_ID_PACIENTE=P_P_IDENTITY */
                  /* P_ID_PACIENTE := SEQ_ID_PACIENTE.NEXTVAL */

                  V_SQL2 := ‘SELECT SEQ_ID_PACIENTE.NEXTVAL INTO P_ID_PACIENTE FROM DUAL;’;

                  EXECUTE IMMEDIATE V_SQL2;

                  /* SET P_DT_ENTRV = ISNULL(P_PERIODO_REFERENCIA,CONVERT( VARCHAR(16),GETDATE(),20)) */
                  /*P_DT_ENTRV := NVL(P_PERIODO_REFERENCIA, TO_CHAR((P_PERIODO_REFERENCIA, SYSDATE)*/

                  V_SQL3 := ‘INSERT INTO TB_ENTRV (DT_ENTRV, ID_FORM, ID_PACIENTE)
                  VALUES (SYSDATE, P_ID_FORM, P_ID_PACIENTE);’;

                  EXECUTE IMMEDIATE V_SQL3;

                  /* SET P_ID_ENTRV=P_P_IDENTITY */
                  /*P_ID_ENTRV := SEQ_ID_ENTRV.NEXTVAL*/

                  V_SQL4 := ‘SELECT SEQ_ID_PACIENTE.NEXTVAL INTO P_ID_PACIENTE FROM DUAL;’;

                  EXECUTE IMMEDIATE V_SQL4;

                  — IF v_versao IS NULL THEN EXECUTE v_nome; END IF;

                  IF (P_ID_SUBPERG_01 IS NOT NULL) THEN EXECUTE.PRC_INSERETBRESP:=(P_ID_ENTRV, P_ID_SUBPERG_01, ID_RESPTEXTO_01, P_ID_NOTATEND_01); END IF;
                  IF (P_ID_SUBPERG_02 IS NOT NULL) THEN EXECUTE.PRC_INSERETBRESP:=(P_ID_ENTRV, P_ID_SUBPERG_02, P_ID_RESPTEXTO_02, P_ID_NOTATEND_02); END IF;
                  IF (P_ID_SUBPERG_03 IS NOT NULL) THEN EXECUTE.PRC_INSERETBRESP:=(P_ID_ENTRV, P_ID_SUBPERG_03, P_ID_RESPTEXTO_03, P_ID_NOTATEND_03); END IF;
                  IF (P_ID_SUBPERG_04 IS NOT NULL) THEN EXECUTE.PRC_INSERETBRESP:=(P_ID_ENTRV, P_ID_SUBPERG_04, P_ID_RESPTEXTO_04, P_ID_NOTATEND_04); END IF;

                  EXCEPTION

                  WHEN OTHERS THEN

                  DBMS_OUTPUT.PUT_LINE (“Comando não realizado”);

                  END;

                  COMMIT;

                  END PRC_SAC_INSEREENTREVISTA;

                  Creio q ta quase acabando!
                  pode ajudar???

                  Valeu!

                  #83229
                  Ishii
                  Participante

                    Olá,

                    Que bom que vc gostou do DBMS_SQL já passei para alguns devs que tiveram suas procs reduzidas em pelo menos 50% de linhas de código….

                    Para executar uma procedure de dentro de outra não precisa do DBMS_SQL pode chamar direto mesmo

                    PRC_INSERETBRESP

                    Pode assim mesmo dentro de Procedure que vai funcionar também!

                    []s Ishii

                    #83234
                    gracianow
                    Participante

                      Cara, fantástico!!! Valeu Ishii vc realmente é um top helper!!!
                      Sua ajuda foi muito valiosa, soberba, relevante, colossal e etc…
                      Ei chega de babar ovo, né!

                      Tai o resultado!

                      O Code completo:

                      create or replace
                      PROCEDURE PRC_SAC_INSEREENTREVISTA
                      (P_IDADE IN NUMBER, P_SEXO IN CHAR, P_ID_ESCOLAPAC IN NUMBER, P_ID_FORM IN NUMBER,
                      P_PERIODO_REFERENCIA IN VARCHAR, P_RESP_COMPLEMENTAR_01 IN NUMBER, P_ID_ESPECPAC IN NUMBER, P_ID_INTENFER IN NUMBER,
                      P_ID_SUBPERG_01 IN NUMBER, P_ID_NOTATEND_01 IN NUMBER, P_ID_RESPTEXTO_01 IN VARCHAR, P_RESP_COMPLEMENTAR_01 IN NUMBER,
                      P_ID_SUBPERG_02 IN NUMBER, P_ID_NOTATEND_02 IN NUMBER, P_ID_RESPTEXTO_02 IN VARCHAR, P_RESP_COMPLEMENTAR_02 IN NUMBER,
                      P_ID_SUBPERG_03 IN NUMBER, P_ID_NOTATEND_03 IN NUMBER, P_ID_RESPTEXTO_03 IN VARCHAR, P_RESP_COMPLEMENTAR_03 IN NUMBER,
                      P_ID_SUBPERG_04 IN NUMBER, P_ID_NOTATEND_04 IN NUMBER, P_ID_RESPTEXTO_04 IN VARCHAR, P_RESP_COMPLEMENTAR_04 IN NUMBER,
                      P_ID_SUBPERG_05 IN NUMBER, P_ID_NOTATEND_05 IN NUMBER, P_ID_RESPTEXTO_05 IN VARCHAR, P_RESP_COMPLEMENTAR_05 IN NUMBER,
                      P_ID_SUBPERG_06 IN NUMBER, P_ID_NOTATEND_06 IN NUMBER, P_ID_RESPTEXTO_06 IN VARCHAR, P_RESP_COMPLEMENTAR_06 IN NUMBER,
                      P_ID_SUBPERG_07 IN NUMBER, P_ID_NOTATEND_07 IN NUMBER, P_ID_RESPTEXTO_07 IN VARCHAR, P_RESP_COMPLEMENTAR_07 IN NUMBER,
                      P_ID_SUBPERG_08 IN NUMBER, P_ID_NOTATEND_08 IN NUMBER, P_ID_RESPTEXTO_08 IN VARCHAR, P_RESP_COMPLEMENTAR_08 IN NUMBER,
                      P_ID_SUBPERG_09 IN NUMBER, P_ID_NOTATEND_09 IN NUMBER, P_ID_RESPTEXTO_09 IN VARCHAR, P_RESP_COMPLEMENTAR_09 IN NUMBER,
                      P_ID_SUBPERG_10 IN NUMBER, P_ID_NOTATEND_10 IN NUMBER, P_ID_RESPTEXTO_10 IN VARCHAR, P_RESP_COMPLEMENTAR_10 IN NUMBER,
                      P_ID_SUBPERG_11 IN NUMBER, P_ID_NOTATEND_11 IN NUMBER, P_ID_RESPTEXTO_11 IN VARCHAR, P_RESP_COMPLEMENTAR_11 IN NUMBER,
                      P_ID_SUBPERG_12 IN NUMBER, P_ID_NOTATEND_12 IN NUMBER, P_ID_RESPTEXTO_12 IN VARCHAR, P_RESP_COMPLEMENTAR_12 IN NUMBER,
                      P_ID_SUBPERG_13 IN NUMBER, P_ID_NOTATEND_13 IN NUMBER, P_ID_RESPTEXTO_13 IN VARCHAR, P_RESP_COMPLEMENTAR_13 IN NUMBER,
                      P_ID_SUBPERG_14 IN NUMBER, P_ID_NOTATEND_14 IN NUMBER, P_ID_RESPTEXTO_14 IN VARCHAR, P_RESP_COMPLEMENTAR_14 IN NUMBER,
                      P_ID_SUBPERG_15 IN NUMBER, P_ID_NOTATEND_15 IN NUMBER, P_ID_RESPTEXTO_15 IN VARCHAR, P_RESP_COMPLEMENTAR_15 IN NUMBER,
                      P_ID_SUBPERG_16 IN NUMBER, P_ID_NOTATEND_16 IN NUMBER, P_ID_RESPTEXTO_16 IN VARCHAR, P_RESP_COMPLEMENTAR_16 IN NUMBER,
                      P_ID_SUBPERG_17 IN NUMBER, P_ID_NOTATEND_17 IN NUMBER, P_ID_RESPTEXTO_17 IN VARCHAR, P_RESP_COMPLEMENTAR_17 IN NUMBER,
                      P_ID_SUBPERG_18 IN NUMBER, P_ID_NOTATEND_18 IN NUMBER, P_ID_RESPTEXTO_18 IN VARCHAR, P_RESP_COMPLEMENTAR_18 IN NUMBER,
                      P_ID_SUBPERG_19 IN NUMBER, P_ID_NOTATEND_19 IN NUMBER, P_ID_RESPTEXTO_19 IN VARCHAR, P_RESP_COMPLEMENTAR_19 IN NUMBER,
                      P_ID_SUBPERG_20 IN NUMBER, P_ID_NOTATEND_20 IN NUMBER, P_ID_RESPTEXTO_20 IN VARCHAR, P_RESP_COMPLEMENTAR_20 IN NUMBER,
                      P_ID_SUBPERG_21 IN NUMBER, P_ID_NOTATEND_21 IN NUMBER, P_ID_RESPTEXTO_21 IN VARCHAR, P_RESP_COMPLEMENTAR_21 IN NUMBER,
                      P_ID_SUBPERG_22 IN NUMBER, P_ID_NOTATEND_22 IN NUMBER, P_ID_RESPTEXTO_22 IN VARCHAR, P_RESP_COMPLEMENTAR_22 IN NUMBER,
                      P_ID_SUBPERG_23 IN NUMBER, P_ID_NOTATEND_23 IN NUMBER, P_ID_RESPTEXTO_23 IN VARCHAR, P_RESP_COMPLEMENTAR_23 IN NUMBER,
                      P_ID_SUBPERG_24 IN NUMBER, P_ID_NOTATEND_24 IN NUMBER, P_ID_RESPTEXTO_24 IN VARCHAR, P_RESP_COMPLEMENTAR_24 IN NUMBER,
                      P_ID_SUBPERG_25 IN NUMBER, P_ID_NOTATEND_25 IN NUMBER, P_ID_RESPTEXTO_25 IN VARCHAR, P_RESP_COMPLEMENTAR_25 IN NUMBER,
                      P_ID_SUBPERG_26 IN NUMBER, P_ID_NOTATEND_26 IN NUMBER, P_ID_RESPTEXTO_26 IN VARCHAR, P_RESP_COMPLEMENTAR_26 IN NUMBER,
                      P_ID_SUBPERG_27 IN NUMBER, P_ID_NOTATEND_27 IN NUMBER, P_ID_RESPTEXTO_27 IN VARCHAR, P_RESP_COMPLEMENTAR_27 IN NUMBER,
                      P_ID_SUBPERG_28 IN NUMBER, P_ID_NOTATEND_28 IN NUMBER, P_ID_RESPTEXTO_28 IN VARCHAR, P_RESP_COMPLEMENTAR_28 IN NUMBER,
                      P_ID_SUBPERG_29 IN NUMBER, P_ID_NOTATEND_29 IN NUMBER, P_ID_RESPTEXTO_29 IN VARCHAR, P_RESP_COMPLEMENTAR_29 IN NUMBER,
                      P_ID_SUBPERG_30 IN NUMBER, P_ID_NOTATEND_30 IN NUMBER, P_ID_RESPTEXTO_30 IN VARCHAR, P_RESP_COMPLEMENTAR_30 IN NUMBER,
                      P_ID_SUBPERG_31 IN NUMBER, P_ID_NOTATEND_31 IN NUMBER, P_ID_RESPTEXTO_31 IN VARCHAR, P_RESP_COMPLEMENTAR_31 IN NUMBER,
                      P_ID_SUBPERG_32 IN NUMBER, P_ID_NOTATEND_32 IN NUMBER, P_ID_RESPTEXTO_32 IN VARCHAR, P_RESP_COMPLEMENTAR_32 IN NUMBER,
                      P_ID_SUBPERG_33 IN NUMBER, P_ID_NOTATEND_33 IN NUMBER, P_ID_RESPTEXTO_33 IN VARCHAR, P_RESP_COMPLEMENTAR_33 IN NUMBER,
                      P_ID_SUBPERG_34 IN NUMBER, P_ID_NOTATEND_34 IN NUMBER, P_ID_RESPTEXTO_34 IN VARCHAR, P_RESP_COMPLEMENTAR_34 IN NUMBER,
                      P_ID_SUBPERG_35 IN NUMBER, P_ID_NOTATEND_35 IN NUMBER, P_ID_RESPTEXTO_35 IN VARCHAR, P_RESP_COMPLEMENTAR_35 IN NUMBER,
                      P_ID_SUBPERG_36 IN NUMBER, P_ID_NOTATEND_36 IN NUMBER, P_ID_RESPTEXTO_36 IN VARCHAR, P_RESP_COMPLEMENTAR_36 IN NUMBER,
                      P_ID_SUBPERG_37 IN NUMBER, P_ID_NOTATEND_37 IN NUMBER, P_ID_RESPTEXTO_37 IN VARCHAR, P_RESP_COMPLEMENTAR_37 IN NUMBER,
                      P_ID_SUBPERG_38 IN NUMBER, P_ID_NOTATEND_38 IN NUMBER, P_ID_RESPTEXTO_38 IN VARCHAR, P_RESP_COMPLEMENTAR_38 IN NUMBER,
                      P_ID_SUBPERG_39 IN NUMBER, P_ID_NOTATEND_39 IN NUMBER, P_ID_RESPTEXTO_39 IN VARCHAR, P_RESP_COMPLEMENTAR_39 IN NUMBER,
                      P_ID_SUBPERG_40 IN NUMBER, P_ID_NOTATEND_40 IN NUMBER, P_ID_RESPTEXTO_40 IN VARCHAR, P_RESP_COMPLEMENTAR_40 IN NUMBER)

                      IS

                      PRAGMA AUTONOMOUS_TRANSACTION;

                      P_ID_PACIENTE NUMBER(10);
                      P_ID_ENTRV NUMBER(10);
                      V_SQL VARCHAR2(500);
                      V_SQL2 VARCHAR2(500);
                      V_SQL3 VARCHAR2(500);
                      V_SQL4 VARCHAR2(500);
                      /*P_DT_ENTRV DATE;*/

                      BEGIN

                      INSERT INTO TB_PACIENTE (IDADE, ID_SEXO_PACIENTE, ID_ESCOLARIDADE_PACIENTE, ID_ESPECIALIDADE_PACIENTE, ID_INT_ENFERMARIA)
                      VALUES (P_IDADE, P_SEXO, P_ID_ESCOLAPAC, P_ID_ESPECPAC, P_ID_INTENFER);

                      /* SET P_ID_PACIENTE=P_P_IDENTITY */
                      /*P_ID_PACIENTE := SEQ_ID_PACIENTE.NEXTVAL*/

                      SELECT SEQ_ID_PACIENTE.NEXTVAL INTO P_ID_PACIENTE FROM DUAL;

                      /* SET P_DT_ENTRV = ISNULL(P_PERIODO_REFERENCIA,CONVERT( VARCHAR(16),GETDATE(),20)) */
                      /*P_DT_ENTRV := NVL(P_PERIODO_REFERENCIA, TO_CHAR(P_PERIODO_REFERENCIA), SYSDATE)*/

                      INSERT INTO TB_ENTRV (DT_ENTRV, ID_FORM, ID_PACIENTE)
                      VALUES (SYSDATE, P_ID_FORM, P_ID_PACIENTE);

                      /* SET P_ID_ENTRV=P_P_IDENTITY */
                      /*P_ID_ENTRV := SEQ_ID_ENTRV.NEXTVAL*/

                      SELECT SEQ_ID_ENTRV.NEXTVAL INTO P_ID_ENTRV FROM DUAL;

                      COMMIT;

                      BEGIN

                      /* SET XACT_ABORT ON */
                      V_SQL := ‘INSERT INTO TB_PACIENTE (IDADE, ID_SEXO_PACIENTE, ID_ESCOLARIDADE_PACIENTE, ID_ESPECIALIDADE_PACIENTE, ID_INT_ENFERMARIA)
                      VALUES (P_IDADE, P_SEXO, P_ID_ESCOLAPAC, P_ID_ESPECPAC, P_ID_INTENFER);’;

                      EXECUTE IMMEDIATE V_SQL;
                      /* SET P_ID_PACIENTE=P_P_IDENTITY */
                      /* P_ID_PACIENTE := SEQ_ID_PACIENTE.NEXTVAL */

                      V_SQL2 := ‘SELECT SEQ_ID_PACIENTE.NEXTVAL INTO P_ID_PACIENTE FROM DUAL;’;

                      EXECUTE IMMEDIATE V_SQL2;

                      /* SET P_DT_ENTRV = ISNULL(P_PERIODO_REFERENCIA,CONVERT( VARCHAR(16),GETDATE(),20)) */
                      /*P_DT_ENTRV := NVL(P_PERIODO_REFERENCIA, TO_CHAR((P_PERIODO_REFERENCIA, SYSDATE)*/

                      V_SQL3 := ‘INSERT INTO TB_ENTRV (DT_ENTRV, ID_FORM, ID_PACIENTE)
                      VALUES (SYSDATE, P_ID_FORM, P_ID_PACIENTE);’;

                      EXECUTE IMMEDIATE V_SQL3;

                      /* SET P_ID_ENTRV=P_P_IDENTITY */
                      /*P_ID_ENTRV := SEQ_ID_ENTRV.NEXTVAL*/

                      V_SQL4 := ‘SELECT SEQ_ID_PACIENTE.NEXTVAL INTO P_ID_PACIENTE FROM DUAL;’;

                      EXECUTE IMMEDIATE V_SQL4;

                      — IF v_versao IS NULL THEN EXECUTE v_nome; END IF;

                      IF (P_ID_SUBPERG_01 IS NOT NULL) THEN PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_01, P_ID_RESPTEXTO_01, P_ID_NOTATEND_01, P_RESP_COMPLEMENTAR_01); END IF;
                      IF (P_ID_SUBPERG_02 IS NOT NULL) THEN PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_02, P_ID_RESPTEXTO_02, P_ID_NOTATEND_02, P_RESP_COMPLEMENTAR_02); END IF;
                      IF (P_ID_SUBPERG_03 IS NOT NULL) THEN PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_03, P_ID_RESPTEXTO_03, P_ID_NOTATEND_03, P_RESP_COMPLEMENTAR_03); END IF;
                      IF (P_ID_SUBPERG_04 IS NOT NULL) THEN PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_04, P_ID_RESPTEXTO_04, P_ID_NOTATEND_04, P_RESP_COMPLEMENTAR_04); END IF;
                      IF (P_ID_SUBPERG_05 IS NOT NULL) THEN PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_05, P_ID_RESPTEXTO_05, P_ID_NOTATEND_05, P_RESP_COMPLEMENTAR_05); END IF;
                      IF (P_ID_SUBPERG_06 IS NOT NULL) THEN PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_06, P_ID_RESPTEXTO_06, P_ID_NOTATEND_06, P_RESP_COMPLEMENTAR_06); END IF;
                      IF (P_ID_SUBPERG_07 IS NOT NULL) THEN PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_07, P_ID_RESPTEXTO_07, P_ID_NOTATEND_07, P_RESP_COMPLEMENTAR_07); END IF;
                      IF (P_ID_SUBPERG_08 IS NOT NULL) THEN PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_08, P_ID_RESPTEXTO_08, P_ID_NOTATEND_08, P_RESP_COMPLEMENTAR_08); END IF;
                      IF (P_ID_SUBPERG_09 IS NOT NULL) THEN PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_09, P_ID_RESPTEXTO_09, P_ID_NOTATEND_09, P_RESP_COMPLEMENTAR_09); END IF;
                      IF (P_ID_SUBPERG_10 IS NOT NULL) THEN PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_10, P_ID_RESPTEXTO_10, P_ID_NOTATEND_10, P_RESP_COMPLEMENTAR_10); END IF;
                      IF (P_ID_SUBPERG_11 IS NOT NULL) THEN PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_11, P_ID_RESPTEXTO_11, P_ID_NOTATEND_11, P_RESP_COMPLEMENTAR_11); END IF;
                      IF (P_ID_SUBPERG_12 IS NOT NULL) THEN PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_12, P_ID_RESPTEXTO_12, P_ID_NOTATEND_12, P_RESP_COMPLEMENTAR_12); END IF;
                      IF (P_ID_SUBPERG_13 IS NOT NULL) THEN PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_13, P_ID_RESPTEXTO_13, P_ID_NOTATEND_13, P_RESP_COMPLEMENTAR_13); END IF;
                      IF (P_ID_SUBPERG_14 IS NOT NULL) THEN PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_14, P_ID_RESPTEXTO_14, P_ID_NOTATEND_14, P_RESP_COMPLEMENTAR_14); END IF;
                      IF (P_ID_SUBPERG_15 IS NOT NULL) THEN PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_15, P_ID_RESPTEXTO_15, P_ID_NOTATEND_15, P_RESP_COMPLEMENTAR_15); END IF;
                      IF (P_ID_SUBPERG_16 IS NOT NULL) THEN PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_16, P_ID_RESPTEXTO_16, P_ID_NOTATEND_16, P_RESP_COMPLEMENTAR_16); END IF;
                      IF (P_ID_SUBPERG_17 IS NOT NULL) THEN PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_17, P_ID_RESPTEXTO_17, P_ID_NOTATEND_17, P_RESP_COMPLEMENTAR_17); END IF;
                      IF (P_ID_SUBPERG_18 IS NOT NULL) THEN PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_18, P_ID_RESPTEXTO_18, P_ID_NOTATEND_18, P_RESP_COMPLEMENTAR_18); END IF;
                      IF (P_ID_SUBPERG_19 IS NOT NULL) THEN PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_19, P_ID_RESPTEXTO_19, P_ID_NOTATEND_19, P_RESP_COMPLEMENTAR_19); END IF;
                      IF (P_ID_SUBPERG_20 IS NOT NULL) THEN PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_20, P_ID_RESPTEXTO_20, P_ID_NOTATEND_20, P_RESP_COMPLEMENTAR_20); END IF;
                      IF (P_ID_SUBPERG_21 IS NOT NULL) THEN PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_21, P_ID_RESPTEXTO_21, P_ID_NOTATEND_21, P_RESP_COMPLEMENTAR_21); END IF;
                      IF (P_ID_SUBPERG_22 IS NOT NULL) THEN PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_22, P_ID_RESPTEXTO_22, P_ID_NOTATEND_22, P_RESP_COMPLEMENTAR_22); END IF;
                      IF (P_ID_SUBPERG_23 IS NOT NULL) THEN PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_23, P_ID_RESPTEXTO_23, P_ID_NOTATEND_23, P_RESP_COMPLEMENTAR_23); END IF;
                      IF (P_ID_SUBPERG_24 IS NOT NULL) THEN PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_24, P_ID_RESPTEXTO_24, P_ID_NOTATEND_24, P_RESP_COMPLEMENTAR_24); END IF;
                      IF (P_ID_SUBPERG_25 IS NOT NULL) THEN PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_25, P_ID_RESPTEXTO_25, P_ID_NOTATEND_25, P_RESP_COMPLEMENTAR_25); END IF;
                      IF (P_ID_SUBPERG_26 IS NOT NULL) THEN PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_26, P_ID_RESPTEXTO_26, P_ID_NOTATEND_26, P_RESP_COMPLEMENTAR_26); END IF;
                      IF (P_ID_SUBPERG_27 IS NOT NULL) THEN PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_27, P_ID_RESPTEXTO_27, P_ID_NOTATEND_27, P_RESP_COMPLEMENTAR_27); END IF;
                      IF (P_ID_SUBPERG_28 IS NOT NULL) THEN PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_28, P_ID_RESPTEXTO_28, P_ID_NOTATEND_28, P_RESP_COMPLEMENTAR_28); END IF;
                      IF (P_ID_SUBPERG_29 IS NOT NULL) THEN PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_29, P_ID_RESPTEXTO_29, P_ID_NOTATEND_29, P_RESP_COMPLEMENTAR_29); END IF;
                      IF (P_ID_SUBPERG_30 IS NOT NULL) THEN PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_30, P_ID_RESPTEXTO_30, P_ID_NOTATEND_30, P_RESP_COMPLEMENTAR_30); END IF;
                      IF (P_ID_SUBPERG_31 IS NOT NULL) THEN PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_31, P_ID_RESPTEXTO_31, P_ID_NOTATEND_31, P_RESP_COMPLEMENTAR_31); END IF;
                      IF (P_ID_SUBPERG_32 IS NOT NULL) THEN PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_32, P_ID_RESPTEXTO_32, P_ID_NOTATEND_32, P_RESP_COMPLEMENTAR_32); END IF;
                      IF (P_ID_SUBPERG_33 IS NOT NULL) THEN PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_33, P_ID_RESPTEXTO_33, P_ID_NOTATEND_33, P_RESP_COMPLEMENTAR_33); END IF;
                      IF (P_ID_SUBPERG_34 IS NOT NULL) THEN PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_34, P_ID_RESPTEXTO_34, P_ID_NOTATEND_34, P_RESP_COMPLEMENTAR_34); END IF;
                      IF (P_ID_SUBPERG_35 IS NOT NULL) THEN PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_35, P_ID_RESPTEXTO_35, P_ID_NOTATEND_35, P_RESP_COMPLEMENTAR_35); END IF;
                      IF (P_ID_SUBPERG_36 IS NOT NULL) THEN PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_36, P_ID_RESPTEXTO_36, P_ID_NOTATEND_36, P_RESP_COMPLEMENTAR_36); END IF;
                      IF (P_ID_SUBPERG_37 IS NOT NULL) THEN PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_37, P_ID_RESPTEXTO_37, P_ID_NOTATEND_37, P_RESP_COMPLEMENTAR_37); END IF;
                      IF (P_ID_SUBPERG_38 IS NOT NULL) THEN PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_38, P_ID_RESPTEXTO_38, P_ID_NOTATEND_38, P_RESP_COMPLEMENTAR_38); END IF;
                      IF (P_ID_SUBPERG_39 IS NOT NULL) THEN PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_39, P_ID_RESPTEXTO_39, P_ID_NOTATEND_39, P_RESP_COMPLEMENTAR_39); END IF;
                      IF (P_ID_SUBPERG_40 IS NOT NULL) THEN PRC_INSERETBRESP(P_ID_ENTRV, P_ID_SUBPERG_40, P_ID_RESPTEXTO_40, P_ID_NOTATEND_40, P_RESP_COMPLEMENTAR_40); END IF;

                      EXCEPTION

                      WHEN OTHERS THEN

                      DBMS_OUTPUT.PUT_LINE (‘Comando não realizado’);

                      END;

                      COMMIT;

                      END PRC_SAC_INSEREENTREVISTA;

                      Acho que criei um monstro!!! rsrsrssr

                      Valeu!

                    Visualizando 9 posts - 1 até 9 (de 9 do total)
                    • Você deve fazer login para responder a este tópico.
                    plugins premium WordPress