Error Text = PL/SQL: ORA-00926

Can some one tell me what the problem is with this, fairly urgent
ERROR:Line # = 120 Column # = 28 Error Text = PL/SQL: ORA-00926: missing VALUES keyword
Line # = 120 Column # = 2 Error Text = PL/SQL: SQL [b]Statement ignored
Oracle Migration Workbench
CREATE OR REPLACE FUNCTION "SA"."SPCXDB_DELIVERPRJ" (
CurrUser_ID IN NUMBER DEFAULT NULL,
Object_ID IN NUMBER DEFAULT NULL,
Path_ID IN NUMBER DEFAULT NULL,
IsLastPhase IN NUMBER DEFAULT NULL,
NewPhase_ID IN NUMBER DEFAULT NULL,
User_ID IN NUMBER DEFAULT NULL,
Comment_ IN VARCHAR2 DEFAULT NULL,RC1_CALL IN OUT Omwb_emulation.globalPkg.RCT1 )
RETURN INTEGER
AS
CurrUser_ID_ NUMBER(10,0) := CurrUser_ID;
Object_ID_ NUMBER(10,0) := Object_ID;
Path_ID_ NUMBER(10,0) := Path_ID;
IsLastPhase_ NUMBER(3,0) := IsLastPhase;
NewPhase_ID_ NUMBER(10,0) := NewPhase_ID;
User_ID_ NUMBER(10,0) := User_ID;
Comment__ VARCHAR2(255) := Comment_;
StoO_selcnt INTEGER;
StoO_error INTEGER;
StoO_rowcnt INTEGER;
StoO_crowcnt INTEGER := 0;
StoO_fetchstatus INTEGER := 0;
StoO_errmsg VARCHAR2(255);
StoO_sqlstatus INTEGER;
tempVar1 NUMBER :=3;
tempVar2 NUMBER :=1;
id NUMBER(10,0);
CURSOR ptr IS
SELECT Object_ID
FROM TT_DVROBJECTS;
dummy_var1 INTEGER;
/****** Object: Stored Procedure dbo.spCXDB_deliverprj Script Date: 2003-11-12 14:21:41 ******/
-- currently logged user id
BEGIN
NULL;
/*[SPCONV-ERR(12)]:(set XACT_ABORT) Manual conversion required*/
1) update project
IF SPCXDB_DELIVERPRJ.IsLastPhase_ = 0 THEN
BEGIN
BEGIN
StoO_error := 0;
StoO_rowcnt := 0;
UPDATE sa.CXDBObjects
SET DvrPath_ID = SPCXDB_DELIVERPRJ.Path_ID_,
DvrPhase_ID = SPCXDB_DELIVERPRJ.NewPhase_ID_,
DvrUser_ID = SPCXDB_DELIVERPRJ.User_ID_
WHERE Object_ID = SPCXDB_DELIVERPRJ.Object_ID_;
StoO_rowcnt := SQL%ROWCOUNT;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
StoO_error := SQLCODE;
StoO_errmsg := SQLERRM;
raise_application_error(SQLCODE, SQLERRM,true);
END;
-- Status = 4
END;
ELSE
BEGIN
BEGIN
StoO_error := 0;
StoO_rowcnt := 0;
UPDATE sa.CXDBObjects
SET DvrPath_ID = 0,
DvrPhase_ID = 0,
DvrUser_ID = 0
WHERE Object_ID = SPCXDB_DELIVERPRJ.Object_ID_;
StoO_rowcnt := SQL%ROWCOUNT;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
StoO_error := SQLCODE;
StoO_errmsg := SQLERRM;
raise_application_error(SQLCODE, SQLERRM,true);
END;
-- Status = 0
BEGIN
StoO_error := 0;
StoO_rowcnt := 0;
UPDATE sa.CXDBDeliverPaths
SET RefCount = RefCount - 1
WHERE Path_ID = SPCXDB_DELIVERPRJ.Path_ID_;
StoO_rowcnt := SQL%ROWCOUNT;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
StoO_error := SQLCODE;
StoO_errmsg := SQLERRM;
raise_application_error(SQLCODE, SQLERRM,true);
END;
2) get all subobjects , subprojects and documents
END;
END IF;
/* Emulating @@TRANCOUNT functionality in Oracle model */
omwb_emulation.globalPkg.trancount:=omwb_emulation.globalPkg.trancount+1;
/*[SPCONV-ERR(55)]:CREATE TABLE TT_DVROBJECTS_2-- TT_DVROBJECTS Will be used -- statement passed to ddl file*/
DELETE FROM TT_DVROBJECTS;
BEGIN
StoO_error := 0;
StoO_rowcnt := 0;
INSERT INTO TT_DVROBJECTS ; /*ERROR:Line # = 120 Column # = 28 Error Text = PL/SQL: ORA-00926: missing VALUES keyword
Line # = 120 Column # = 2 Error Text = PL/SQL: SQL Statement ignored
SQL SERVER 2000
BEGIN TRAN
CREATE TABLE #DvrObjects ( Object_ID int NOT NULL )
NSERT
#DvrObjects
EXEC
spCXDB_expandtree @Object_ID,3,1 */
StoO_rowcnt := SQL%ROWCOUNT;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
StoO_error := SQLCODE;
StoO_errmsg := SQLERRM;
raise_application_error(SQLCODE, SQLERRM,true);
END;
BEGIN
/* demoDMS*/sa.spCXDB_expandtree(SPCXDB_DELIVERPRJ.Object_ID_,
tempVar1,
tempVar2,
RC1 => RC1_CALL);
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
StoO_error := SQLCODE;
StoO_errmsg := SQLERRM;
raise_application_error(SQLCODE, SQLERRM,true);
END;
3) put documents and projects onto deliver path
NULL;/*DECLARE CURSOR ptr */
BEGIN
StoO_error := 0;
StoO_rowcnt := 0;
StoO_crowcnt := 0;
OPEN ptr;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
StoO_error := SQLCODE;
StoO_errmsg := SQLERRM;
raise_application_error(SQLCODE, SQLERRM,true);
END;
BEGIN
StoO_error := 0;
StoO_rowcnt := 0;
StoO_crowcnt := 0;
FETCH ptr INTO
SPCXDB_DELIVERPRJ.id;
EXCEPTION
WHEN OTHERS THEN
StoO_rowcnt := 0;
StoO_selcnt := 0;
StoO_error := SQLCODE;
StoO_errmsg := SQLERRM;
raise_application_error(SQLCODE, SQLERRM,true);
END;
IF ptr%NOTFOUND THEN
StoO_sqlstatus := 2;
StoO_fetchstatus := -1;
ELSE
StoO_sqlstatus := 0;
StoO_fetchstatus := 0;
END IF;
<<i_loop1>>
WHILE ( StoO_fetchstatus = 0) LOOP
BEGIN
-- IF (SELECT Status FROM CXDBObjects WHERE Object_ID = @id) = 4 AND
BEGIN
StoO_selcnt := 0;
StoO_error := 0;
StoO_rowcnt := 0;
SELECT 1 INTO StoO_selcnt
FROM DUAL
WHERE 0 <> (
SELECT DvrPhase_ID
FROM CXDBObjects
WHERE Object_ID = SPCXDB_DELIVERPRJ.id ) AND SPCXDB_DELIVERPRJ.Path_ID_
= (
SELECT DvrPath_ID
FROM CXDBObjects
WHERE Object_ID = SPCXDB_DELIVERPRJ.id );
StoO_rowcnt := SQL%ROWCOUNT;
EXCEPTION
WHEN NO_DATA_FOUND THEN
StoO_rowcnt := 0;
StoO_selcnt := 0;
WHEN OTHERS THEN
StoO_rowcnt := 0;
StoO_selcnt := 0;
StoO_error := SQLCODE;
StoO_errmsg := SQLERRM;
raise_application_error(SQLCODE, SQLERRM,true);
END;
IF StoO_selcnt != 0 THEN
BEGIN
BEGIN
BEGIN
StoO_selcnt := 0;
StoO_error := 0;
StoO_rowcnt := 0;
SELECT 1 INTO StoO_selcnt
FROM DUAL
WHERE 0 = (
SELECT type_
FROM CXDBObjects
WHERE Object_ID = SPCXDB_DELIVERPRJ.id );
StoO_rowcnt := SQL%ROWCOUNT;
EXCEPTION
WHEN NO_DATA_FOUND THEN
StoO_rowcnt := 0;
StoO_selcnt := 0;
WHEN OTHERS THEN
StoO_rowcnt := 0;
StoO_selcnt := 0;
StoO_error := SQLCODE;
StoO_errmsg := SQLERRM;
raise_application_error(SQLCODE, SQLERRM,true);
END;
IF StoO_selcnt != 0 THEN
BEGIN
-- update project data
IF SPCXDB_DELIVERPRJ.IsLastPhase_ = 0 THEN
BEGIN
BEGIN
StoO_error := 0;
StoO_rowcnt := 0;
UPDATE sa.CXDBObjects
SET DvrPath_ID = SPCXDB_DELIVERPRJ.Path_ID_,
DvrPhase_ID = SPCXDB_DELIVERPRJ.NewPhase_ID_,
DvrUser_ID = SPCXDB_DELIVERPRJ.User_ID_
WHERE Object_ID = SPCXDB_DELIVERPRJ.id;
StoO_rowcnt := SQL%ROWCOUNT;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
StoO_error := SQLCODE;
StoO_errmsg := SQLERRM;
raise_application_error(SQLCODE, SQLERRM,true);
END;
-- Status = 4
END;
ELSE
BEGIN
BEGIN
StoO_error := 0;
StoO_rowcnt := 0;
UPDATE sa.CXDBObjects
SET DvrPath_ID = 0,
DvrPhase_ID = 0,
DvrUser_ID = 0
WHERE Object_ID = SPCXDB_DELIVERPRJ.id;
StoO_rowcnt := SQL%ROWCOUNT;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
StoO_error := SQLCODE;
StoO_errmsg := SQLERRM;
raise_application_error(SQLCODE, SQLERRM,true);
END;
-- Status = 0
--decrease path reference counter
BEGIN
StoO_error := 0;
StoO_rowcnt := 0;
UPDATE sa.CXDBDeliverPaths
SET RefCount = RefCount - 1
WHERE Path_ID = SPCXDB_DELIVERPRJ.Path_ID_;
StoO_rowcnt := SQL%ROWCOUNT;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
StoO_error := SQLCODE;
StoO_errmsg := SQLERRM;
raise_application_error(SQLCODE, SQLERRM,true);
END;
END;
END IF;
END;
ELSE
BEGIN
BEGIN
dummy_var1 := /* demoDMS*/sa.spCXDB_deliverdocument(SPCXDB_DELIVERPRJ.CurrUser_ID_,
SPCXDB_DELIVERPRJ.id,
SPCXDB_DELIVERPRJ.Path_ID_,
SPCXDB_DELIVERPRJ.IsLastPhase_,
SPCXDB_DELIVERPRJ.NewPhase_ID_,
SPCXDB_DELIVERPRJ.User_ID_,
SPCXDB_DELIVERPRJ.Comment__);
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
StoO_error := SQLCODE;
StoO_errmsg := SQLERRM;
raise_application_error(SQLCODE, SQLERRM,true);
END;
END;
END IF;
END;
END;
END IF;
BEGIN
StoO_error := 0;
StoO_rowcnt := 0;
StoO_crowcnt := 0;
FETCH ptr INTO
SPCXDB_DELIVERPRJ.id;
EXCEPTION
WHEN OTHERS THEN
StoO_rowcnt := 0;
StoO_selcnt := 0;
StoO_error := SQLCODE;
StoO_errmsg := SQLERRM;
raise_application_error(SQLCODE, SQLERRM,true);
END;
IF ptr%NOTFOUND THEN
StoO_sqlstatus := 2;
StoO_fetchstatus := -1;
ELSE
StoO_sqlstatus := 0;
StoO_fetchstatus := 0;
END IF;
END;
END LOOP;
BEGIN
StoO_error := 0;
StoO_rowcnt := 0;
CLOSE ptr;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
StoO_error := SQLCODE;
StoO_errmsg := SQLERRM;
raise_application_error(SQLCODE, SQLERRM,true);
END;
NULL;
/* Emulating @@TRANCOUNT functionality in Oracle model */
IF omwb_emulation.globalPkg.trancount = 1 THEN
COMMIT WORK;
END IF;
IF omwb_emulation.globalPkg.trancount > 0 THEN
omwb_emulation.globalPkg.trancount:=omwb_emulation.globalPkg.trancount-1;
END IF;
RETURN (0);
END SPCXDB_DELIVERPRJ;
Thank's

Hi Hilary,
This is the original T-SQL code. Please, help me.
CREATE PROCEDURE spCXDB_deliverPrj
@CurrUser_ID     int,          -- currently logged user id
@Object_ID     int,
@Path_ID     int,
@IsLastPhase     tinyint,
@NewPhase_ID int,
@User_ID     int,
@Comment     varchar(255) = NULL
AS
SET XACT_ABORT ON
     1) update project
IF @IsLastPhase = 0
BEGIN
     UPDATE
          CXDBObjects
     SET
          DvrPath_ID = @Path_ID,
          DvrPhase_ID = @NewPhase_ID,
          DvrUser_ID = @User_ID
--          Status = 4
     WHERE
          Object_ID = @Object_ID
END
ELSE
BEGIN
     UPDATE
          CXDBObjects
     SET
          DvrPath_ID = 0,
          DvrPhase_ID = 0,
          DvrUser_ID = 0
--          Status = 0
     WHERE
          Object_ID = @Object_ID
     UPDATE
          CXDBDeliverPaths
     SET
          RefCount = RefCount - 1
     WHERE
          Path_ID = @Path_ID
END
     2) get all subobjects , subprojects and documents
BEGIN TRAN
CREATE TABLE #DvrObjects ( Object_ID int NOT NULL )
INSERT
     #DvrObjects
EXEC
     spCXDB_expandtree @Object_ID,3,1
     3) put documents and projects onto deliver path
DECLARE @id int
DECLARE ptr CURSOR FOR SELECT Object_ID FROM #dvrobjects
OPEN ptr
FETCH NEXT FROM ptr INTO @id
WHILE(@@FETCH_STATUS = 0)
BEGIN
--     IF     (SELECT Status FROM CXDBObjects WHERE Object_ID = @id) = 4 AND
     IF     (SELECT DvrPhase_ID FROM CXDBObjects WHERE Object_ID = @id) <> 0 AND
          (SELECT DvrPath_ID FROM CXDBObjects WHERE Object_ID = @id) = @Path_ID
     BEGIN
          IF (SELECT type FROM CXDBObjects WHERE Object_ID = @id) = 0
          BEGIN
               -- update project data
               IF @IsLastPhase = 0
               BEGIN
                    UPDATE
                         CXDBObjects
                    SET
                         DvrPath_ID = @Path_ID,
                         DvrPhase_ID = @NewPhase_ID,
                         DvrUser_ID = @User_ID
--                         Status = 4
                    WHERE
                         Object_ID = @id
               END
               ELSE
               BEGIN
                    UPDATE
                         CXDBObjects
                    SET
                         DvrPath_ID = 0,
                         DvrPhase_ID = 0,
                         DvrUser_ID = 0
--                         Status = 0
                    WHERE
                         Object_ID = @id
                    --decrease path reference counter
                    UPDATE
                         CXDBDeliverPaths
                    SET
                         RefCount = RefCount - 1
                    WHERE
                         Path_ID = @Path_ID
                    END
          END
          ELSE
          BEGIN
               EXEC spCXDB_deliverdocument @CurrUser_ID, @id,@Path_ID,@IsLastPhase,@NewPhase_ID,@User_ID, @Comment
          END
     END
     FETCH NEXT FROM ptr INTO @id
END
CLOSE ptr
DEALLOCATE ptr
COMMIT TRAN
RETURN(0)
Regards,
Emilia.

Similar Messages

  • Error in appdstln.sql during upgrade to 12.1.1

    Hi All,
    I am upgrading my 11.5.9 ebs to 12.1.1 I have gone through all steps outlined in chapter 3 of Oracle® E-Business Suite
    Upgrade Guide Release 11i to 12.1.3 Part No. E16342-03. I am now in point number 10 under " Perform the Upgrade" i.e :
    Run the American English upgrade patch driver which is (u6678700.drv)
    After going through nearly 130,000 jobs I got the following error in appdstln.sql
    ORA-01400: cannot insert NULL into("AP"."AP_PAYMENT_HIST_DISTS"."INVOICE_DISTRIBUTION_ID")
    Please help me get through this error asap as we are very low on time.

    Please log a SR as no similar issues are reported in MOS website.
    Thanks,
    Hussein

  • The database error text is: ORA-01843: not a valid month

    I am trying to use a date field as a query filter and I keep getting the
    following error:
    A database error occurred. The database error text is: ORA-01843: not a
    valid month. (WIS 10901).
    When I remove the query filter and run the query it works as
    expected. I want to be able to allow the users to use the date field in order
    to select a date range. Can someone provide me with some information on how to
    resolve this issue.

    SQL> SELECT (to_char(tO_date('09/29/2006', 'mm/dd/yyyy'))||':'||TO_CHAR(systimestamp,'hh24:mi:ss:ff6'))
      2  FROM dual;
    (TO_CHAR(TO_DATE('09/29/2006
    29-SEP-06:01:33:09:023000
    But you want mm/dd/yyyy hh24:mi:ss:ff6 format then use TO_CHAR function for format specifier
    SQL> SELECT to_char(to_timestamp((to_char(tO_date('09/29/2006', 'mm/dd/yyyy'))||':'||TO_CHAR(systimestamp,'hh24:mi:ss:ff6')), 'dd/mm/yyyy hh24:mi:ss:ff6'),'mm/dd/yyyy hh24:mi:ss:ff6')
      2  FROM DUAL
      3  /
    TO_CHAR(TO_TIMESTAMP((TO_CHAR
    09/29/0006 01:40:27:113000
    SQL> Khurram

  • ERROR at line 1: ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine ORA-20000: Oracle Text error: DRG-10700: preference does not exist: global_lexer ORA-06512: at "CTXSYS.DRUE", line 160 ORA-06512: at "CTXSYS.TEXTINDEXMETHODS", line 366

    database version 11.2.0.4
    rac two node
    CREATE INDEX MAXIMO.ACTCI_NDX3 ON MAXIMO.ACTCI
    (DESCRIPTION)
    INDEXTYPE IS CTXSYS.CONTEXT
    PARAMETERS('lexer global_lexer language column LANGCODE')
    ERROR at line 1:
    ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine
    ORA-20000: Oracle Text error:
    DRG-10700: preference does not exist: global_lexer
    ORA-06512: at "CTXSYS.DRUE", line 160
    ORA-06512: at "CTXSYS.TEXTINDEXMETHODS", line 366

    Like the error message says, you don't have a global_lexer.  So, you need to create a global_lexer and that lexer must have at least a default sub_lexer, then you can use that global_lexer in your index parameters.  Please see the demonstration below, including reproduction of the error and solution.
    SCOTT@orcl12c> -- reproduction of problem:
    SCOTT@orcl12c> CREATE TABLE actci
      2    (description  VARCHAR2(60),
      3      langcode     VARCHAR2(30))
      4  /
    Table created.
    SCOTT@orcl12c> CREATE INDEX ACTCI_NDX3 ON ACTCI (DESCRIPTION)
      2  INDEXTYPE IS CTXSYS.CONTEXT
      3  PARAMETERS('lexer global_lexer language column LANGCODE')
      4  /
    CREATE INDEX ACTCI_NDX3 ON ACTCI (DESCRIPTION)
    ERROR at line 1:
    ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine
    ORA-20000: Oracle Text error:
    DRG-10700: preference does not exist: global_lexer
    ORA-06512: at "CTXSYS.DRUE", line 160
    ORA-06512: at "CTXSYS.TEXTINDEXMETHODS", line 366
    SCOTT@orcl12c> -- solution:
    SCOTT@orcl12c> DROP INDEX actci_ndx3
      2  /
    Index dropped.
    SCOTT@orcl12c> BEGIN
      2    CTX_DDL.CREATE_PREFERENCE ('global_lexer', 'multi_lexer');
      3    CTX_DDL.CREATE_PREFERENCE ('english_lexer', 'basic_lexer');
      4    CTX_DDL.ADD_SUB_LEXER ('global_lexer', 'default', 'english_lexer');
      5  END;
      6  /
    PL/SQL procedure successfully completed.
    SCOTT@orcl12c> CREATE INDEX ACTCI_NDX3 ON ACTCI (DESCRIPTION)
      2  INDEXTYPE IS CTXSYS.CONTEXT
      3  PARAMETERS('lexer global_lexer language column LANGCODE')
      4  /
    Index created.

  • Error message: 'ORA-00926:missing VALUES keyword

    Hi Friends,
    I am trying to update a database table in SAPR3.ORACLE database from CRM via an ABAP program.
    I did required BDCON setup. But I get the error message : ORA-00926:missing VALUES keyword.
    Looking forward your help to solve this problem.  Anyone came across such issue?
    below is my code and BDCON setup
    DB Connection      DB_CONNECT
    DBMS               ORA
    User Name          test_db
    DB password                                      
    Conn. info         sapde9db00a
    Connection Limit   10
    Optimum Conns      5
    TABLES: BUT000.
    DATA: EXC_REF TYPE REF TO CX_SY_NATIVE_SQL_ERROR,
    ERROR_TEXT TYPE STRING.
    DATA W_PARTNER TYPE BUT000-PARTNER.
    TYPES: BEGIN OF TYP_PARTNER,
           MANDT TYPE SY-MANDT,
           PARTNER_NUMBER TYPE BU_PARTNER,
          END OF TYP_PARTNER.
    DATA: ZZ_TEST TYPE STANDARD TABLE OF TYP_PARTNER WITH HEADER LINE.
    DATA: DBTYPE TYPE DBCON_DBMS,
          DBCUR TYPE CURSOR,
    T_BUT000 LIKE BUT000 OCCURS 0 WITH HEADER LINE.
    SELECT * INTO CORRESPONDING FIELDS OF TABLE T_BUT000 FROM BUT000 ORDER BY PRIMARY KEY.
    LOOP AT T_BUT000.
      ZZ_TEST-MANDT = SY-MANDT.
      ZZ_TEST-PARTNER_NUMBER = T_BUT000-PARTNER.
      APPEND ZZ_TEST.
    ENDLOOP.
    TRY.
        EXEC SQL.
          SET CONNECTION  'DB_CONNECT'
        ENDEXEC.
        EXEC SQL.
          CONNECT TO  'DB_CONNECT'
        ENDEXEC.
       LOOP AT ZZ_TEST.
        EXEC SQL.
          INSERT INTO SAPR3."ZZTEST_DB":
          (mandt, partner_number) VALUES('220', '0000000253');
        ENDEXEC.
        IF SY-SUBRC <> 0.
        ENDIF.
       ENDLOOP.
      CATCH CX_SY_NATIVE_SQL_ERROR INTO EXC_REF.
        ERROR_TEXT = EXC_REF->GET_TEXT( ).
        MESSAGE ERROR_TEXT TYPE 'I'.
    ENDTRY.
    EXEC SQL.
      SET CONNECTION DEFAULT
    ENDEXEC.
    Thanks in advance for you help,
    regards
    DJ

    Hi,
    See my complete code to update values using internal table
    TABLES: BUT000.
    DATA: EXC_REF TYPE REF TO CX_SY_NATIVE_SQL_ERROR,
    ERROR_TEXT TYPE STRING.
    DATA W_PARTNER TYPE BUT000-PARTNER.
    TYPES: BEGIN OF TYP_PARTNER,
           MANDT TYPE SY-MANDT,
           PARTNER_NUMBER TYPE BU_PARTNER,
          END OF TYP_PARTNER.
    DATA: ZZ_TEST TYPE STANDARD TABLE OF TYP_PARTNER WITH HEADER LINE.
    DATA: DBTYPE TYPE DBCON_DBMS,
          DBCUR TYPE CURSOR,
    T_BUT000 LIKE BUT000 OCCURS 0 WITH HEADER LINE.
    SELECT * INTO CORRESPONDING FIELDS OF TABLE T_BUT000 FROM BUT000 ORDER BY PRIMARY KEY.
    LOOP AT T_BUT000.
      ZZ_TEST-MANDT = SY-MANDT.
      ZZ_TEST-PARTNER_NUMBER = T_BUT000-PARTNER.
      APPEND ZZ_TEST.
    ENDLOOP.
    TRY.
        EXEC SQL.
          SET CONNECTION  'DB_CONNECT'
        ENDEXEC.
        EXEC SQL.
          CONNECT TO  'DB_CONNECT'
        ENDEXEC.
        LOOP AT ZZ_TEST.
          EXEC SQL.
            INSERT INTO SAPR3.ZZTEST_DB (mandt, partner_number) VALUES (ZZ_TEST-MANDT, ZZ_TEST-PARTNER_NUMBER);
          ENDEXEC.
          IF SY-SUBRC <> 0.
          ENDIF.
        ENDLOOP.
      CATCH CX_SY_NATIVE_SQL_ERROR INTO EXC_REF.
        ERROR_TEXT = EXC_REF->GET_TEXT( ).
        MESSAGE ERROR_TEXT TYPE 'I'.
    ENDTRY.
    EXEC SQL.
      SET CONNECTION DEFAULT
    ENDEXEC.
    Edited by: Mourougane DJEARAMANE on Mar 31, 2008 2:11 PM

  • PL/SQL: ORA-04052: error occurred when looking up remote object.

    Hi All,
    I'm getting the following error message while executing a PL/SQL Block.
    PL/SQL: ORA-04052: error occurred when looking up remote object UPLDUSER.filestatushistory@FTS
    ORA-00604: error occurred at recursive SQL level 1
    ORA-03106: fatal two-task communication protocol error
    ORA-02063: preceding line from FTSStatement
    declare
    v_coun number;
    begin
    select count(*) into v_coun
    from updluser.filestatushistory@fts;
    end;Back ground of the situation as follows,
    My DataBase version 10.2.0.3 DB Name :DB1
    Table Owner : UPLDUSER
    Table Name : FILESTATUSHISTORY
    I have a report user on the same database and I have grant all on the above table to report user
    Report User : RPT_FTS
    SQL> GRANT ALL ON FILESTATUSHISTORY_V TO RPT_FTS;Now Please find the below database details where I'm getting subjected error.
    Database version : 9.2.0.8
    DB Name : DB2
    User Name : RPT_REPORTS
    I Have create a dblink from RPT_REPORTS to RPT_FTS on DB1 and the dblink works fine. But getting the above error while running it.
    but When I do the same other 10.2.0.3 db , the above PL/SQL block works fine without any problem.
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    Now the strange about this is that I have Created a new table on DB1 db like below;
    SQL> CREATE TABLE UPLDUSER.ABC AS SELECT * FROM FILESTATUSHISTORY;and retry my code on DB2 (9.2.0.8) after changing the table to ABC and it worked. Now I don't know whats wrong with a original table(FILESTATUSHISTORY).
    To over come the problem and a work-a-round method I create a view on the DB1 (RPT_FTS) like the below
    SQL> CREATE VIEW FILESTATUSHISTORY AS SELECT * FROM UPLDUSER.FILESTATUSHISTORY;and was able to run the PL/SQL block Remotely.
    Just wants To know what whould have been the cause for this .
    Cheers
    Kanchana

    Hi Kanchana,
    Perhaps following link of google search has answer to your query
    ORA-04052. The search result contains some useful articles whose URLs I shan't post in the forums.
    HTH!
    *009*

  • ORA-00604: error at recursive sql level 1ORA-01882: timezone region not fou

    hello eveyone i have installed SQL developer and try to create a connexion but it shows the following error:
    " : ORA-00604: error at recursive sql level 1ORA-01882: timezone region not found"
    (i choosed TNS as connexion type , default as rol )
    plz help
    thanks

    Hi Raccio,
    Using the forum search functionality, I came across the following threads with some tips that might help you:
    ORA-00604 & ORA-01804 when connecting to Oracle 11 database 11.1.0.6.0
    ora-01882 "timezone region not found" with 3.0.03.97 but not with 3.0.03.45
    Regards,
    Gary Graham
    SQL Developer Team
    Edited by: gggraham on Jul 20, 2011 1:03 PM

  • Error in Trigger ( PL/SQL: ORA-01744: inappropriate INTO)

    Hi ,
    I've written the trigger in the following format.. As the original trigger is around 700 lines, so just format is written here.. please co-operate..
    CREATE OR REPLACE TRIGGER --
    AFTER UPDATE OF COL1
    ON TAB1
    REFERENCING NEW AS NEW OLD AS OLD
    FOR EACH ROW
    WHEN (NOT(OLD.COL1 IS NULL AND NEW.COL1=0))
    DECLARE
    rowToins PAK1.fdList;
    i number;
    BEGIN
    IF :NEW.COL2='V' THEN
    INSERT INTO DEST(
      D_AT)
    SELECT * FROM ( SELECT --
       PAK2.FUN1('AD',TAB10.ID) AS D_AT
    FROM ---
    WHERE --- )
       WHERE D_AT IS NOT NULL;
    ELSEIF :NEW.COL2 ='H' THEN
    SELECT * FROM ( SELECT --
       PAK2.FUN1('AD',TAB9.ID) AS D_AT
    BULK COLLECT INTO rowToins
    FROM ---
    WHERE --- )
       WHERE D_AT IS NOT NULL;
    i:=rowToins.FIRST;
    WHILE i IS NOT NULL LOOP
    --insert row 1
      PAK1.fun2(rowToins(i).<col>,
    i:=rowToins.NEXT(i);
    END LOOP;
    END IF;
    END;
    /The above code is giving the error..
    PL/SQL: ORA-01744: inappropriate INTOSo how can i correct the code...
    thanks

    The line no..are
    159/3 PL/SQL: SQL Statement ignored
    213/16 PL/SQL: ORA-01744: inappropriate INTO
    159 --> the first where condition in the example code
    213 --> the select list column in the second if condition in example code
    If i remove the
    select * from (
    PAK2.FUN1('AD',TAB9.ID) AS D_AT
    WHERE D_AT IS NOT NULL;Then the trigger is created with no issues....
    please let me know if i'm not clear
    Edited by: josh1612 on Apr 27, 2009 3:42 AM

  • Error(20,22): PL/SQL: ORA-00942: table or view does not exist

    I am getting currently getting an error when I try and insert into a table from a different schema from my Stored Procedure:
    Error(20,22): PL/SQL: ORA-00942: table or view does not exist
    I am explicitly calling the table with the schema name infront i.e.
    INSERT INTO SAPSR3.ZTREC_NAME_TYPE
    MASTER_ID,
    NAME_TYPE,
    FAMILY_NAME,
    FIRST_NAME,
    MIDDLE_NAME,
    TITLE
    VALUES
    In_MasterID,
    In_NameType,
    In_FamilyName,
    In_FirstName,
    In_MiddleName,
    In_Title
    I only get this error when I try and compile my stored procedure. If I try this insert not within a stored procedure (i.e. a blank script) it works perfectly.
    Can anyone tell me what Im doing wrong?
    Thanks.

    Hi,
    It sounds like you (the procedure owner) have privileges on that table only through a role.
    Roles don't count in stored procedures created with AUTHID OWNER (which is the default).
    Either
    (1) Have user SAPSR3 grant the necessary privileges directly to you (or to PUBLIC), or
    (2) change the procedure so that it runs with the caller's privileges, by adding AUTHID CURRENT_USER after the argument list but before the keyword IS (os AS) like this:
    CREATE OR REPLACE PROCEDURE     foo
    (     x     IN     NUMBER
    AUTHID CURRENT_USER
    IS ...

  • Error while executing Procedure - ORA-06511: PL/SQL: cursor already open

    I have successfully compiled the following procedure but when I execute it, following error occurs, please adv.
    Thanks and Regards,
    Luqman
    create or replace
    procedure TESTKIBOR
    (contno in varchar)
    AS
    BEGIN
    DECLARE cursor c1 is
    SELECT * FROM KIBOR_SCHEDULE
    WHERE CN=contno;
    begin
    OPEN C1;
    FOR line IN c1 LOOP
    update kibor_schedule
    set lincome=line.Lincome,
    expo=line.eXPO,
    pport=line.pPORT
    where cn=line.cn
    and rno=line.rno;
    END LOOP;
    COMMIT;
    close c1;
    END;
    END TESTKIBOR;
    ERROR at line 1:
    ORA-06511: PL/SQL: cursor already open
    ORA-06512: at "MKTG.TESTKIBOR", line 6
    ORA-06512: at "MKTG.TESTKIBOR", line 10
    ORA-06512: at line 1

    Hi,
    CREATE OR REPLACE PROCEDURE Testkibor
         (contno  IN VARCHAR)
    AS
    BEGIN
      DECLARE
        CURSOR c1 IS
          SELECT *
          FROM   kibor_schedule
          WHERE  cn = contno;
      BEGIN
    --//    OPEN c1; --no need to open if using for loop
        FOR line IN c1 LOOP
          UPDATE kibor_schedule
          SET    lincome = line.lincome,
                 expo = line.expo,
                 pport = line.pport
          WHERE  cn = line.cn
                 AND rno = line.rno;
        END LOOP;
        COMMIT;
    --//     CLOSE c1; -- no need for loop  does it for you
      END;
    END testkibor;SS

  • A database error occured. The database error text is: ORA-29275: partial multibyte character . (WIS 10901)

    Hi,
    My Webi report is geeting failed with the error
    "A database error occured. The database error text is: ORA-29275: partial multibyte character . (WIS 10901)"
    may i know the root cause of the above error and how to resolve it. I am using BO 3.1.
    Its very important to provide the report. Please help urgently.
    Thanks in advance.
    Abid

    Hi Abid,
    Please see SAP Note 1556127.
    Symptom
    A database error occurs after refreshing a web intelligence report in java report panel or web intelligence in interactive mode
    The database error text is: ORA 29275 with partial multibyte character (WIS 10901)
    Environment
    windows 2003 Server
    Cause
    Environment variables are not set with value UTF-8:LC_ALL,LANG, and NLS_LANG
    Resolution
    Set following system environment variables: LC_ALL,LANG, and NLS_LANG with value UTF-8. For example, LC_ALL=EN_US.UTF-8

  • Oracle error 1403:java.sql.SQLException: ORA-01403: no data found ORA-06512

    My customer has an issue, and error message as below:
    <PRE>Oracle error 1403: java.sql.SQLException: ORA-01403: no data found ORA-06512:
    at line 1 has been detected in FND_SESSION_MANAGEMENT.CHECK_SESSION. Your
    session is no longer valid.</PRE>
    Servlet error: An exception occurred. The current application deployment descriptors do not allow for including it in this response. Please consult the application log for details.
    And customer’s statement is: Upgrade from EBS 11.5.10 to 12.1.3. Login the EBS, open any forms and put it in idle. Then refresh the form, error happens
    Then, I checked ISP, and found two notes:
    Note 1284094.1: Web ADI Journal Upload Errors With ORA-01403 No Data Found ORA-06512 At Line Has Been Detected In FND_SESSION_MANAGEMENT.CHECK_SESSION.Your Session Is No Longer Valid (Doc ID 1284094.1)
    Note 1319380.1: Webadi Gl Journal Posting Errors After Atg R12.1.3 (Doc ID 1319380.1)
    But these two notes are both WebADI.
    Following is the data collection from customer:
    1. Run UNIX command to check .class file version:
    strings $JAVA_TOP/oracle/apps/bne/utilities/BneViewerUtils.class | grep Header--> S$Header: BneViewerUtils.java 120.33.12010000.17 2010/11/21 22:19:58 amgonzal s$
    2. Run SQL to check you patch level:
    SELECT * FROM fnd_product_installations WHERE patch_level LIKE '%BNE%';--> R12.BNE.B.3
    3. Run SQL to check patch '9940148' applied or not:
    SELECT * FROM ad_bugs ad WHERE ad.bug_number = '9940148';--> No Rows returned
    4. Run SQL to check patch '9785477' applied or not:
    SELECT * FROM ad_bugs WHERE bug_number in ('9785477');-->
    BUG_ID APPLICATION_SHORT_NAME BUG_NUMBER CREATION_DATE ARU_RELEASE_NAME CREATED_BY LAST_UPDATE_DATE LAST_UPDATED_BY TRACKABLE_ENTITY_ABBR BASELINE_NAME GENERIC_PATCH LANGUAGE
    576982 11839583 2011/8/7 上午 08:20:36 R12 5 2011/8/7 上午 08:20:36 5 pjt B n US
    516492 9785477 2011/6/12 上午 11:42:45 R12 5 2011/6/12 上午 11:42:45 5 bne B n US
    546109 9785477 2011/6/12 下午 01:17:41 R12 5 2011/6/12 下午 01:17:41 5 bne B n ZHT
    5. Run SQL to check the status of object ‘FND_SESSION_MANAGEMENT’
    SELECT * FROM dba_objects do WHERE do.object_name = 'FND_SESSION_MANAGEMENT';-->
    OWNER OBJECT_NAME SUBOBJECT_NAME OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE CREATED LAST_DDL_TIME TIMESTAMP STATUS TEMPORARY GENERATED SECONDARY NAMESPACE EDITION_NAME
    APPS FND_SESSION_MANAGEMENT 219425 PACKAGE 2004/10/30 下午 01:52:35 2011/8/7 上午 08:18:39 2011-08-07:08:18:26 VALID N N N 1
    APPS FND_SESSION_MANAGEMENT 226815 PACKAGE BODY 2004/10/31 上午 01:05:40 2011/8/7 上午 08:18:54 2011-08-07:08:18:27 VALID N N N 2
    So, my question is: Customer’s BneViewerUtils.java version is already 120.33.12010000.17, which greater than 120.33.12010000.14. Is there any others solutions for this issue? Does customer still need to apply patch '9940148' based on action plan of
    Note 1284094.1: Web ADI Journal Upload Errors With ORA-01403 No Data Found ORA-06512 At Line Has Been Detected In FND_SESSION_MANAGEMENT.CHECK_SESSION.Your Session Is No Longer Valid?
    Customer's EBS version is 12.1.3; OS is HP-UX PA-RISC (64-bit); DB is 11.2.0.2.
    Thanks,
    Jackie

    And customer’s statement is: Upgrade from EBS 11.5.10 to 12.1.3. Login the EBS, open any forms and put it in idle. Then refresh the form, error happens
    Idle for how long? Is the issue with all sessions?
    Please see these docs/links
    User Sessions Get Timed Out Before Idle Time Parameter Values Are Reached [ID 1306678.1]
    https://forums.oracle.com/forums/search.jspa?threadID=&q=Timeout+AND+R12&objID=c3&dateRange=all&userID=&numResults=15&rankBy=10001
    Then, I checked ISP, and found two notes:
    Note 1284094.1: Web ADI Journal Upload Errors With ORA-01403 No Data Found ORA-06512 At Line Has Been Detected In FND_SESSION_MANAGEMENT.CHECK_SESSION.Your Session Is No Longer Valid (Doc ID 1284094.1)
    Note 1319380.1: Webadi Gl Journal Posting Errors After Atg R12.1.3 (Doc ID 1319380.1)
    But these two notes are both WebADI.Can you find any details about the error in Apache log files and in the application.log file?
    Any errors in the database log file?
    So, my question is: Customer’s BneViewerUtils.java version is already 120.33.12010000.17, which greater than 120.33.12010000.14. Is there any others solutions for this issue? No.
    Does customer still need to apply patch '9940148' based on action plan ofIf the issue not with Web ADI, then ignore this patch. However, if you use Web ADI you could query AD_BUGS table and verify if you have the patch applied.
    Note 1284094.1: Web ADI Journal Upload Errors With ORA-01403 No Data Found ORA-06512 At Line Has Been Detected In FND_SESSION_MANAGEMENT.CHECK_SESSION.Your Session Is No Longer Valid?
    Customer's EBS version is 12.1.3; OS is HP-UX PA-RISC (64-bit); DB is 11.2.0.2.If you could not find any details in the logs, please enable debug as per (R12, 12.1 - How To Enable and Collect Debug for HTTP, OC4J and OPMN [ID 422419.1]).
    Thanks,
    Hussein

  • BCP - Error with column text in sql server 2000

    Hi,
    Im trying to restore a bcp using the command: 
    bcp "db.dbo.tb_log_old" in "tb_log2013.out" -SSERVER -T -n
    Im using SQL 2000 with the table below
    CREATE TABLE [dbo].[tb_log_old](
    [cd_id] [int] NULL,
    [cd_servico] [int] NULL,
    [dt_ocorrencia] [datetime] NULL,
    [nm_xml_entrada] [text] NULL,
    [nm_xml_saida] [text] NULL,
    [dt_inicio_processamento] [datetime] NULL,
    [dt_fim_processamento] [datetime] NULL
    ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
    I have got the error
    Starting copy...
    SQLState = S1001, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]Memory allocation failure
    SQLState = 22001, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]String data, right truncation
    SQLState = S1000, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]Text column data incomplete
    SQLState = S1000, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]Text column data incomplete
    SQLState = 22001, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]String data, right truncation
    SQLState = S1000, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]Text column data incomplete
    SQLState = S1000, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]Text column data incomplete
    SQLState = 22001, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]String data, right truncation
    SQLState = S1000, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]Text column data incomplete
    SQLState = S1000, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]Text column data incomplete
    SQLState = S1000, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]Text column data incomplete
    SQLState = 22001, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]String data, right truncation
    SQLState = S1000, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]Text column data incomplete
    SQLState = 22001, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]String data, right truncation
    SQLState = S1000, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]Text column data incomplete
    SQLState = 22001, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]String data, right truncation
    SQLState = S1000, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]Text column data incomplete
    SQLState = 37000, NativeError = 4810
    Error = [Microsoft][ODBC SQL Server Driver][SQL Server]Expected the TEXT token in data stream for bulk copy of text or image data.
    BCP copy in failed

    I tried with binary and nvarchar but I got the error below:
    Can I get just 2 columns in the bcp?
    Starting copy...
    SQLState = 22001, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]String data, right truncation
    SQLState = 22001, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]String data, right truncation
    SQLState = 22001, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]String data, right truncation
    SQLState = 22001, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]String data, right truncation
    SQLState = 22001, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]String data, right truncation
    SQLState = 22001, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]String data, right truncation
    SQLState = 22001, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]String data, right truncation
    SQLState = 22001, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]String data, right truncation
    SQLState = 22001, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]String data, right truncation
    SQLState = 22001, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]String data, right truncation
    BCP copy in failed

  • ERROR in PROCEDURE  PL/SQL: ORA-00947: not enough values

    Hi all i am creating a Procedure in which i am getting very strange ERROR
    h4. i am using Oralce 11g, SQL Developer 3
    my scenario is :
    CREATE SEQUENCE tt_TMPMEASURESOURCE_ID
    START WITH 1
    INCREMENT BY 1;
    CREATE TABLE tt_TMPMEASURESOURCE
    ID NUMBER(10,0) ,
    OBJNAME VARCHAR2(200) ,
    PRSP NUMBER(10,0) ,
    SOURCEID NUMBER(10,0) ,
    SOURCENAME VARCHAR2(100) ,
    FIX NUMBER(3,0) ,
    MNAME VARCHAR2(1000) ,
    MDESC VARCHAR2(1000)
    CREATE OR REPLACE TRIGGER tt_TMPMEASURESOURCE_ID_TRG
    BEFORE INSERT
    ON tt_TMPMEASURESOURCE
    FOR EACH ROW
    BEGIN
    SELECT tt_TMPMEASURESOURCE_ID.NEXTVAL INTO :NEW.ID
    FROM DUAL;
    END;
    INSERT INTO TT_TMPMEASURESOURCE
    *(OBJNAME,PRSP,SOURCEID,SOURCENAME,FIX,MNAME,MDESC)*
    values ('rajnish',43,54,'anish',4,'apple','kumar');
    output :
    +1 row inserted+
    h4. select * from TT_TMPMEASURESOURCE;
    h3. 1     rajnish     43     54     anish     4     apple     kumar
    creating and compiling Procedure
    create or replace procedure tem_test
    as
    begin
    INSERT INTO tt_TmpMeasureSource
    *(OBJNAME,PRSP,SOURCEID,SOURCENAME,FIX,MNAME,MDESC)*
    VALUES ( v_ObjName, v_PrespectiveID, v_SourceID, v_SourceName, v_FIX, v_MName, v_MDesc );
    when compiling
    Error(63,16): PL/SQL: SQL Statement ignored
    Error(63,28): PL/SQL: ORA-00947: not enough values
    i am do not understand that when Trigger A trigger is allready there for 1st column
    then why its giving me this error?
    please help me out
    thanks

    i got my solutions
    creating and compiling Procedure
    create or replace procedure tem_test
    as
    begin
    INSERT INTO tt_TmpMeasureSource
    *(OBJNAME,PRSP,SOURCEID,SOURCENAME,FIX,MNAME,MDESC)*
    VALUES ( v_ObjName, v_PrespectiveID, v_SourceID, v_SourceName, v_FIX, v_MName, v_MDesc );
    it was a typography mistake
    this line was missing in Original procedure
    *(OBJNAME,PRSP,SOURCEID,SOURCENAME,FIX,MNAME,MDESC)*thanks

  • How to catch PL/SQL: ORA-04052 error?

    I need to execute a procedure that select remote objects but the remote db is a RAC DB and I only have access to one of the nodes, the remote RAC have load balancing enabled and the remote DBA can’t create a DB Service for my connection, so, I have to re-run the execution of my procedure until it connects successful to the remote DB through a db link, but I can’t catch the error ORA-12541: TNS:no listener.
    Someone knows how to catch the error??
    set serveroutput on
    declare
    function F_DATE return sysdate
    is
    ld_return date;
    begin
    begin
    select sysdate into ld_return from dual@dbl_bnvalores;
    exception
    when others then
    ld_return := f_date;
    end;
    return ld_return;
    end F_DATE;
    begin
    dbms_output.put_line('Remote sysdate: '||f_date);
    end;
    Error at line 2
    ORA-06550: line 2, column 26:
    PLS-00562: a function must return a type.
    ORA-06550: line 7, column 42:
    PL/SQL: ORA-04052: error occurred when looking up remote object BNSAFI.DUAL@DBL_BNVALORES
    ORA-00604: error occurred at recursive SQL level 1
    ORA-12541: TNS:no listener
    ORA-06550: line 7, column 7:
    PL/SQL: SQL Statement ignored

    I could confirm that you would never branch to the exception in case of no listener!
    So another possibility that comes to mind is to enclose the remote select in an execute immediate and only execute it if you could establish a connection via UTL_TCP:
    Something along those lines:
    michaels>  DECLARE
       conn               UTL_TCP.connection;
       l_date             DATE;
       no_listner_excep   EXCEPTION;
       PRAGMA EXCEPTION_INIT (no_listner_excep, -29260);
    BEGIN
       conn := UTL_TCP.open_connection ('fleet', 1569);
       EXECUTE IMMEDIATE 'select sysdate from dual@fleet_new'
                    INTO l_date;
       UTL_TCP.close_connection (conn);
       DBMS_OUTPUT.put_line (l_date);
    EXCEPTION
       WHEN no_listner_excep
       THEN
          DBMS_OUTPUT.put_line (SQLERRM (SQLCODE));
    END;
    ORA-29260: network error: TNS:no listener
    PL/SQL procedure successfully completed.

Maybe you are looking for