Stored procedure with database link with "from table(...)"

Hi guys,
I've been told I can't create views on a database by the design team and so have to use this stored procedure to obtain the values.
select HAN_ID, HAN_DS, GLOBAL_IN, LOCAL_IN
from table(cast(ODADMIN.ODP00002_QUERY.Execute001@DBLINK(11312,'EN') as
ODADMIN.ODP00002_001_Array@DBLINK)) WHERE LOCAL_IN = 'Y';I've been told that it works when you remove the database links (so on the actual database) when you remove the cast part. I've tried it with my link and with/without the cast part but it doesn't work. With the example above I get the error: ORA-00907: missing right parenthesis.
When I remove the CAST-AS and the additional parenthesis it brings i get the error: ORA-00904: "ODADMIN"."ODP00002_QUERY"."EXECUTE001": invalid identifier
When I do table( *"* ODADMIN.ODP00002_QUERY.Execute001@MWW_DEV(11312,'EN') *"* )... -- wrapping the call in speech marks I get: ORA-00972: identifier is too long
Anyone see what's wrong? Thanks for any help.
Mike

Hi Ben,
Asking now. By a view I mean one local to the database; I could create one on APEX but then I use the database link twice instead of just 1.
His reasoning Ben:
Firstly, Maintenance. We will have to maintain additional views (at additional code). Secondly, if the view has a JOIN, then you can't update through it (without complexities). If we have to get the View to pass the data to a Procedure (that's a pain). Also, standards..
All update occur via either a Procedure, or a Base view, across over 1000 tables
That's the standard, and doing things differently is costly long term
People will not know how it works, it will have to be explained, maintained..etc.
If the Application has the Business Rules, then updates via Base Views, that's a more standard way of developing. Also, if you update via this view, you'll update multiple rows in one call, which is in-effficient if only ONE row needs to change. Therefore, single row updates from the Application is more efficient
The procedure is as follows:
--SET SERVEROUTPUT ON
DECLARE
nPBusLoc       NUMBER(5):=11312;
sPHanId        VARCHAR2(3):='SB1';
sPLngId        VARCHAR2(2):='EN';
sPDesc         VARCHAR2(30);
sPAllowAlloc   VARCHAR2(1);
sPShowEnq      VARCHAR2(1);
sPAllowDel     VARCHAR2(1);
sPShowScan     VARCHAR2(1);
sPGlobalLocal  VARCHAR2(1);
sPReturnCd     VARCHAR2(2);
sPReturnTx     VARCHAR2(100);                  
BEGIN
ODADMIN.ODP00001.getHandlingCodes
                       (nPBusLoc    --  IN   NUMBER
                      ,sPHanId      -- IN   VARCHAR2
                      ,sPLngId      -- IN   VARCHAR2
                      ,sPDesc       -- OUT  VARCHAR2
                      ,sPAllowAlloc -- OUT  VARCHAR2
                      ,sPShowEnq    -- OUT  VARCHAR2
                      ,sPAllowDel   -- OUT  VARCHAR2
                      ,sPShowScan   -- OUT  VARCHAR2
                      ,sPGlobalLocal-- OUT  VARCHAR2
                      ,sPReturnCd   -- OUT  VARCHAR2
                      ,sPReturnTx   -- OUT  VARCHAR2                                    
DBMS_OUTPUT.PUT_LINE('nPBusLoc                 = '||nPBusLoc              );
DBMS_OUTPUT.PUT_LINE('sPHanId                  = '||sPHanId               );
DBMS_OUTPUT.PUT_LINE('sPLngId                  = '||sPLngId               );
DBMS_OUTPUT.PUT_LINE('sPDesc                   = '||sPDesc                );
DBMS_OUTPUT.PUT_LINE('sPAllowAlloc             = '||sPAllowAlloc          );
DBMS_OUTPUT.PUT_LINE('sPShowEnq                = '||sPShowEnq             );
DBMS_OUTPUT.PUT_LINE('sPAllowDel               = '||sPAllowDel            );
DBMS_OUTPUT.PUT_LINE('sPShowScan               = '||sPShowScan            );
DBMS_OUTPUT.PUT_LINE('sPGlobalLocal            = '||sPGlobalLocal         );
DBMS_OUTPUT.PUT_LINE('sPReturnCd               = '||sPReturnCd            );
DBMS_OUTPUT.PUT_LINE('sPReturnTx               = '||sPReturnTx            );
END;
/Mike
Edited by: Dird on 27-Aug-2009 01:50

Similar Messages

  • Error Stored Procedure Upgrading database from SBO 2007A PL42 to SBO 8.8

    Hi,
    When executing the SBO 8.8 PL00  upgrade procedure for databases for an "old" database 2007A PL 42, upgrtade stops whith an error concerning a missing stored procedure "_TmSp_CorrectWrongDocLineNumberInOINMForIPF which is not found".
    The error details says that it occurs on "Stock Updates" step (just after Checks for Payment) and log file gives the following message here after.
    Does anybody have an idea how to upgrade the 2007A database ?
    Thanks
    Error message in log :
    Upgrade          Error              Technical     Failed to call Stored Procedure TmSpCorrectWrongDocLineNumberInOINMForIPF
    Edited by: Michel Diepart on Oct 24, 2009 10:55 PM

    Hi Paul,
    Thanks for your prompt response on a saturday and so late in the evening
    Concerning the Stored Procedure, I would like to delete it but ... it doesn't exist and that's the problem...
    No such procedure in my database (programmability / Stored procedurefolder in SQL).
    When searching on the forum about this stored procedure, no result.
    Does this stored procedure have a link with something regarding adjustment in stock ?
    "Stock updates" : what table is it in SAP B1 ? If necessary I could save the table, create a sql query to re-create it after delete and try to restart the upgrade procedure but I don't know what is the related table...
    I will also try with another 2007A PL 42 database to see if it works.
    Do you know if anybody has already try to upgrade a 2007 PL42 dabase to SBO 8.8 ?
    Best regards

  • Using database link  with a dynamic SQL in Forms 5

    I have a Form 5 application where a database link is specified in a client version of dynamic SQL. The function that the application is designed to perform is to access data in a table in a remote database and use it to populate another table in a local database with the same structure as the source table. Dynamic SQL is used because the name of the table can only be resolved during run time.
    The problem is that it gives error with code 'ORA-03113' and text 'End-of-file on communication channel' when you try to run it.
    Is it not possible to use a database link with a dynamic SQL? What can I do to overcome the problem ?

    Try to create a local view based ao the remote table and use the view.

  • Database link with the alias and full description in the connect string

    Hi,
    i have created database link with alias in tnsentry and full description
    and suppose i have removed the tnsnames.ora file what will be the impact on the database link that is whether database link will work or not i am sure db link created with alias won't work and how about db link created with full description and which one you prefer
    Thanks

    # Parameter file initora for Database prd
    ### Global database name is db_name.db_domain
    global_names = TRUE
    db_name = prd
    db_domain = world
    # TNSNAMES.ORA for prd ###############################
    prd.world = (DESCRIPTION = (ADDRESS = (COMMUNITY = tcp.world)
    (PROTOCOL = TCP) (Host = 100.10.100.1) (Port = 1521))
    (CONNECT_DATA = (SID = prd) (GLOBAL_NAME = prd.world)
    (SERVER = DEDICATED)))
    Our database link points from the local database test to the remote database prd. Therefore we need the global database name for prd. Ask the remote database administrator for these information or connect to prd and execute the following query on prd:
    SQL> select GLOBAL_NAME from GLOBAL_NAME;
    GLOBAL_NAME
    prd.WORLD
    CREATE DATABASE LINK prd
    CONNECT TO system IDENTIFIED BY system_passwd
    USING 'prd';--- alias
    so the connection description will be ---select ename from [email protected]
    useful link
    http://www.akadia.com/services/ora_dblinks.html

  • Strange problem with Database LInk

    Hi Everyone,
    I have strange problem with Database Link in Oracle 11g Express Edition;
    There are two computers: computer-server and computer-client. Tnsnames.ora are the same on both computers ie.
    CT =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = krzysztof)(PORT = 1521))
    (CONNECT_DATA = (SERVICE_NAME = XE)
    I created database link :
    Create database link zdalny
    Connect to <user_id> identified by <password>
    using ‘CT’;
    Client can’t connect with server when I am using above command. But when I change “using” for using ‘krzysztof:1521’ or using ‘krzysztof’ or using ‘server IP:1521’ – everything is ok.
    Why I am asking. Because in all materials which I am reading about Oracle command with using ‘CT’ should be working correct. But there is not. Do you know, why?
    Thanks in advance and apologize for my English.
    Rgds
    Krzysztof

    Krzysztof Szymaniak wrote:
    Thanks for all replies.
    Below is server's tnsnames.ora
    CT =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = krzysztof)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = XE)
    EXTPROC_CONNECTION_DATA =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    (CONNECT_DATA =
    (SID = PLSExtProc)
    (PRESENTATION = RO)
    ORACLR_CONNECTION_DATA =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    (CONNECT_DATA =
    (SID = CLRExtProc)
    (PRESENTATION = RO)
    SQL Error: ORA-12154: TNS:could not resolve the connect identifier specified
    12154. 00000 - "TNS:could not resolve the connect identifier specifie
    Rgds
    Krzysztof
    PS. I tried with using 'XE' - not working.Assuming that is the correct tnsnames, of course XE is not working. You don't have a tnsnames entry for 'XE'.
    You need to be aware that when using a dblink, the client is the db in which the link is defined, not the desktop from which you connect to that database.
    I think you need to start here:
    http://edstevensdba.wordpress.com/2011/02/26/ora-12154tns-03505/
    http://edstevensdba.wordpress.com/2011/02/09/sqlnet_overview/ (Help! I can’t connect to my database )
    http://edstevensdba.wordpress.com/2011/02/16/sqlnet_client_cfg/ (Help! I can’t connect to my database (part duex) )
    The fact that your client (db link) is a database doesn't change anything taught in the above.

  • Stored Procedure to delete a number of tables with a common name attribute

    Hi All,
    This is my first post so I hope I have posted to the required level with sufficient information. This is my first stored procedure (SP) and is for Oracle 10.
    I am trying to write a script to delete 11 tables and some rows from another 3 tables, all of which are named with a number that I would like to input at the point of creation of the SP. Below is the script I have written and edited. My original has been lost by crashing servers!
    When I run the script it gives me the following output:
    "Warning: execution complete with warning
    procedure ScenarioDelete compiled"
    The SP hasn't deleted any of the tables and I'm not sure if it's because my script is poor or because of something else. Any help is greatly appreciated!!
    -- table delete SP
    -- Run begin ScenarioDelete ('x'); with x as the ScenarioId
    create or replace procedure ScenarioDelete (ScenarioNo IN varchar2);
    countstable := 'C_' || ScenarioNo;
    changetable := 'CG_' || ScenarioNo;
    countsinfotable := 'CI_' || ScenarioNo;
    datatable1 := 'D_0_' || ScenarioNo;
    datatable2 := 'D_1_' || ScenarioNo;
    datatable3 := 'D_2_' || ScenarioNo;
    hietable1 := 'HI_0_' || ScenarioNo;
    hietable2 := 'HI_1_' || ScenarioNo;
    hietable3 := 'HI_2_' || ScenarioNo;
    hielinktable1 := 'HL_1_' || ScenarioNo;
    hielinktable2 := 'HL_2_' || ScenarioNo;
    AS
    execute immediate 'drop table ' || countstable;
    execute immediate 'drop table ' || changetable;
    execute immediate 'drop table ' || countsinfotable;
    execute immediate 'drop table ' || datatable1;
    execute immediate 'drop table ' || datatable2;
    execute immediate 'drop table ' || datatable3;
    execute immediate 'drop table ' || hietable1;
    execute immediate 'drop table ' || hietable2;
    execute immediate 'drop table ' || hietable3;
    execute immediate 'drop table ' || hielinktable1;
    execute immediate 'drop table ' || hielinktable2;
    execute immediate 'delete from USERACESS where SCENARIOID = ' || ScenarioNo;
    execute immediate 'delete from SCENARIO where SCENARIOID = ' || ScenarioNo;
    execute immediate 'delete from SCENARIOINFO where SCENARIOID = ' || ScenarioNo;
    -- or --
    execute immediate 'delete from USERACESS where SCENARIOID = '' || ScenarioNo || ''';
    execute immediate 'delete from SCENARIO where SCENARIOID = '' || ScenarioNo || ''';
    execute immediate 'delete from SCENARIOINFO where SCENARIOID = '' || ScenarioNo || ''';
    END;

    Hi,
    Welcome to the forum!
    When you compile a stored procedure, you get only the vaguest of error messages by default.
    Always say SHOW ERRORS immediately after compiling, to get more detailed error messages. (And, of course, post the complete error message, including line number, when you need help.)
    Remember to specify a datatype (and, in the case of VARCHAR2 variables, a maximum length) for all local variables you declare:
    create or replace procedure ScenarioDelete (ScenarioNo IN varchar2)     -- no semicolon here
    AS  -- AS or IS (it doesn't matter which) required here
        countstable  VARCHAR2 (50) := 'C_'  || ScenarioNo;
        changetable  VARCHAR2 (50) := 'CG_' || ScenarioNo;
    ...You're not actually wasting any space if you decalre the variable as 50 characters, but only use 3.
    It really helps if you format code, so that, for example,
    all the local variables are indented before the word BEGIN
    everything between BEGIN and its corresponding END is indented
    everything between IF and its corresponding END IF is indented,
    and so on.
    You're probably already doing that, but it doesn't show up on this site unless you type these 6 characters
    (small letters only, inside curly brackets) before and after the formatted text.
    That's what I did for the code fragement above.
    Edited by: Frank Kulash on Mar 23, 2009 12:04 PM
    Formatting stuff added.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Query a remote table with Database Links

    How do database links work with ODP.NET? The following code produces an "ORA-02041: client database did not begin a transaction" error on the Fill method.
    SQL (in acme instance):
    CREATE DATABASE LINK sales.hq.acme.com
    CONNECT TO scott IDENTIFIED BY tiger
    USING 'sales'
    VB .NET:
    Dim cn As New OracleConnection("Data Source=acme;User ID=scott;Password=tiger;")
    Dim da As New OracleDataAdapter("SELECT * FROM [email protected]", cn)
    Dim ds As New DataSet
    da.Fill(ds, "RemoteEmp")

    Just read running procedure on remote db???
    Changed first line to
    Dim cn As New OracleConnection("Data Source=acme;User ID=scott;Password=tiger;Enlist=false")
    and it works now.
    That's what I get for searching the forum instead of browsing.

  • NO Links or Associations created with the "Business Components From Tables"

    Hello,
    I have a strange problem. I'm working on a Fusion Web Applicaiton. In the Model project, I try to create some Business Components from Tables with the help of the provided wizard.
    I select one of my IDE Connections, and I choose two of my tables as Entity Objects (*PATIENTS* and COUNTRIES - more details about them bellow), and also as Updatable View Objects. For Read-Only View Objects I select some other tables, afterwards I choose to create a default Application Module, and I press Finish without creating a Business Diagram. Everything works perfectly except of the fact that the wizzard has created everything but the Links and the Associations between my tables.
    To be more precise, COUNTRIES is a simple table, only two columns - ID and NAME, and PATIENTS has some columns like ID, NAME, ADDRESS, DATE_OF_ADMISSION, COUNTRY_ID, where COUNTRY_ID is a foreign key to the COUNTRIES table. Both columns, PATIENTS.COUNTRY_ID and COUNTRIES.ID are NUMBERs. I was expectig the wizard to create a Link and a Association for this foreign key constraint I have between this two tables.
    On the other hand, following one of the tutorials I've found, *"Developing RIA Web Applications with Oracle ADF"*, I've noticed that when I was creating Business Components from Tables based on the HR schema, all the Links and Associations were created as they were expected. I've also tried to create the same Business Components from Tables in my own project, and all the Links and Associations were in place. Somehow, it's not working for my particular schema (the one that contains PATIENTS and COUNTRIES).
    Is there something I do wrong? I've made sure that all the FK constraints are enabled, alive and kicking. From my point of view, the tables are working and behavig as they should, but I can't understand why that feature of automatically creating the Links and Associations works on the HR schema but not on mine.
    Please help!
    Bogdan.
    PS: I am using Oracle JDeveloper Studio Edition Version 11.1.1.1.0, Oracle SQL Developer Version 1.5.5, and Oracle 10g Express Edition installed on localhost.

    Hello John,
    Of course I can post the scripts.
    The schema name is "TEST". But you should know that there are some extra columns in the PATIENTS table, I've not mentioned before. As you can tell from the scripts bellow, the PATIENTS table has the following columns: ID (number), NAME (varchar2), COUNTRY (number), GENDER (number), ADMISSIONDATE (date), DIAGNOSTIC (number), FIRSTNAME (varchar2), SALARY (number). There are actually 3 FK constraints, I've only mentioned one for the simplifying the example. The first FK constraint is towards COUNTRIES, the second one is towards GENDERS, and the final one is towards DIAGNOSTICS. All this 3 tables have only two columns (ID as number, and GENDER as varchar2). I will post the scripts for all.
    Here is the output of the Export DDL to Clipboard from SQL Developer for the COUNTRIES table:
    CREATE TABLE "TEST"."COUNTRIES"
    (     "ID" NUMBER NOT NULL ENABLE,
         "NAME" VARCHAR2(1000 BYTE) NOT NULL ENABLE,
         CONSTRAINT "COUNTRIES_UK1" UNIQUE ("NAME")
    USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ENABLE,
         CONSTRAINT "COUNTRIES_PK" PRIMARY KEY ("ID")
    USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ENABLE
    ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ;
    CREATE UNIQUE INDEX "TEST"."COUNTRIES_PK" ON "TEST"."COUNTRIES" ("ID")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ;
    CREATE UNIQUE INDEX "TEST"."COUNTRIES_UK1" ON "TEST"."COUNTRIES" ("NAME")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ;
    CREATE OR REPLACE TRIGGER "TEST"."COUNTRIES_TRG"
    BEFORE INSERT ON COUNTRIES
    FOR EACH ROW
    BEGIN
    SELECT COUNTRIES_SEQ.NEXTVAL INTO :NEW.ID FROM DUAL;
    END;
    ALTER TRIGGER "TEST"."COUNTRIES_TRG" ENABLE;
    Here is the same output for the GENDERS table:
    CREATE TABLE "TEST"."GENDERS"
    (     "ID" NUMBER NOT NULL ENABLE,
         "NAME" VARCHAR2(50 BYTE) NOT NULL ENABLE,
         CONSTRAINT "GENDERS_PK" PRIMARY KEY ("ID")
    USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ENABLE,
         CONSTRAINT "GENDERS_UK1" UNIQUE ("NAME")
    USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ENABLE
    ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ;
    CREATE UNIQUE INDEX "TEST"."GENDERS_PK" ON "TEST"."GENDERS" ("ID")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ;
    CREATE UNIQUE INDEX "TEST"."GENDERS_UK1" ON "TEST"."GENDERS" ("NAME")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ;
    CREATE OR REPLACE TRIGGER "TEST"."GENDERS_TRG"
    BEFORE INSERT ON GENDERS
    FOR EACH ROW
    BEGIN
    SELECT GENDERS_SEQ.NEXTVAL INTO :NEW.ID FROM DUAL;
    END;
    ALTER TRIGGER "TEST"."GENDERS_TRG" ENABLE;
    Here is the same output for the DIAGNOSTICS table:
    CREATE TABLE "TEST"."DIAGNOSTICS"
    (     "ID" NUMBER NOT NULL ENABLE,
         "NAME" VARCHAR2(1000 BYTE) NOT NULL ENABLE,
         CONSTRAINT "DIAGNOSTICS_PK" PRIMARY KEY ("ID")
    USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ENABLE,
         CONSTRAINT "DIAGNOSTICS_UK1" UNIQUE ("NAME")
    USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ENABLE
    ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ;
    CREATE UNIQUE INDEX "TEST"."DIAGNOSTICS_PK" ON "TEST"."DIAGNOSTICS" ("ID")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ;
    CREATE UNIQUE INDEX "TEST"."DIAGNOSTICS_UK1" ON "TEST"."DIAGNOSTICS" ("NAME")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ;
    CREATE OR REPLACE TRIGGER "TEST"."DIAGNOSTICS_TRG"
    BEFORE INSERT ON DIAGNOSTICS
    FOR EACH ROW
    BEGIN
    SELECT DIAGNOSTICS_SEQ.NEXTVAL INTO :NEW.ID FROM DUAL;
    END;
    ALTER TRIGGER "TEST"."DIAGNOSTICS_TRG" ENABLE;
    And finally, here is the same output for the PATIENTS table:
    CREATE TABLE "TEST"."PATIENTS"
    (     "ID" NUMBER NOT NULL ENABLE,
         "NAME" VARCHAR2(1000 BYTE) NOT NULL ENABLE,
         "COUNTRY" NUMBER,
         "GENDER" NUMBER,
         "ADMISSIONDATE" DATE,
         "DIAGNOSTIC" NUMBER,
         "FIRSTNAME" VARCHAR2(1000 BYTE),
         "SALARY" NUMBER,
         CONSTRAINT "PATIENTS_PK" PRIMARY KEY ("ID")
    USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ENABLE,
         CONSTRAINT "PATIENTS_UK1" UNIQUE ("NAME", "ID")
    USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ENABLE,
         CONSTRAINT "PATIENTS_GENDERS_FK1" FOREIGN KEY ("GENDER")
         REFERENCES "TEST"."GENDERS" ("ID") ENABLE,
         CONSTRAINT "PATIENTS_DIAGNOSTICS_FK1" FOREIGN KEY ("DIAGNOSTIC")
         REFERENCES "TEST"."DIAGNOSTICS" ("ID") ENABLE,
         CONSTRAINT "PATIENTS_COUNTRIES_FK1" FOREIGN KEY ("COUNTRY")
         REFERENCES "TEST"."COUNTRIES" ("ID") ENABLE
    ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ;
    CREATE INDEX "TEST"."PATIENTS_INDEX1" ON "TEST"."PATIENTS" ("NAME")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ;
    CREATE UNIQUE INDEX "TEST"."PATIENTS_PK" ON "TEST"."PATIENTS" ("ID")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ;
    CREATE UNIQUE INDEX "TEST"."PATIENTS_UK1" ON "TEST"."PATIENTS" ("NAME", "ID")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ;
    CREATE OR REPLACE TRIGGER "TEST"."PATIENTS_TRG"
    BEFORE INSERT ON PATIENTS
    FOR EACH ROW
    BEGIN
    SELECT PATIENTS_SEQ.NEXTVAL INTO :NEW.ID FROM DUAL;
    END;
    ALTER TRIGGER "TEST"."PATIENTS_TRG" ENABLE;
    If a complete DB dump would be more helpful, please let me know. I am willing to provide any details.
    Thanks for your support.

  • PL/SQL :ORA-04052 with Database link

    i have created a database link in my producation database as following
    CREATE PUBLIC DATABASE LINK <NAME>
    CONNECT TO <USER>
    IDENTIFIED BY <P/W>
    USING <CONNECT STRING OF TARGET DATABASE
    oracle version 9.0.2.8
    OS : Windows 2003 EE R2 SP2
    Using oracle failsafe 3.3.4 with windows cluster
    Problem Description :
    whenever i run my pl/sql procecdure to pull the data from the target database i get the following error
    ERROR at line 3
    ORA-06550:line 3 column 2
    PL/SQL : ORA-04052: error occured when looking up remote object _<SCHEMA>.<TABLE>@<DATABASE LINKE NAME>_
    ORA-00604 : ERROR occured at recursive SQL level 1
    ORA-03106 : fatal tow-task communication protocol error
    ORA-02063: preceding line from <DATABASE LINK NAME>
    I have tested the same way in the test environment the same oracle version as well the OS but without oracle failsafe and windows cluster
    the script goes smoothly with out any errors.
    i have google and checked the OTN for all available solutions but still nothing its not getting throw
    i will be very thankful for your replys and solutions
    any farther clarification i am ready
    thanks in advance

    Hi,
    This forum is for issues connecting to non-Oracle databases. As the problem is using PL/SQL to connect to another Oracle database then it would be better to post a thread in the PL/SQL forum -
    PL/SQL
    If you are trying to connect to a non-Oracle database then please give us the details of which non-Oracle database and the software you are trying to use to connect.
    Regards,
    Mike

  • Issue while creating location with database link

    Hi all,
    I am using OWB 10.2.0.4.0 (same Oracle DB version). I am trying to create a location using a database link.
    When I select the location which the database link is located (From location drop-down list), I face the following error.
    >
    ENV0036: The selected location is not valid.
    ENV0036: The selected location is not valid.
         at oracle.wh.service.sdk.integrator.RepositoryUtils.createDBLinkWithLocation(RepositoryUtils.java:156)
         at oracle.wh.ui.environment.wizards.DatabaseLinkComponent.init(DatabaseLinkComponent.java:61)
         at oracle.wh.ui.environment.wizards.DatabaseLinkComponent.reload(DatabaseLinkComponent.java:204)
         at oracle.wh.ui.environment.wizards.FromLocationComponent.itemStateChanged(FromLocationComponent.java:111)
         at javax.swing.JComboBox.fireItemStateChanged(JComboBox.java:1162)
         at javax.swing.JComboBox.selectedItemChanged(JComboBox.java:1219)
         at javax.swing.JComboBox.contentsChanged(JComboBox.java:1266)
         at javax.swing.AbstractListModel.fireContentsChanged(AbstractListModel.java:100)
         at javax.swing.DefaultComboBoxModel.setSelectedItem(DefaultComboBoxModel.java:88)
         at javax.swing.JComboBox.setSelectedItem(JComboBox.java:551)
         at javax.swing.JComboBox.setSelectedIndex(JComboBox.java:597)
         at javax.swing.plaf.basic.BasicComboPopup$ListMouseHandler.mouseReleased(BasicComboPopup.java:749)
         at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:232)
         at java.awt.Component.processMouseEvent(Component.java:5100)
         at javax.swing.plaf.basic.BasicComboPopup$2.processMouseEvent(BasicComboPopup.java:452)
         at java.awt.Component.processEvent(Component.java:4897)
         at java.awt.Container.processEvent(Container.java:1569)
         at java.awt.Component.dispatchEventImpl(Component.java:3615)
         at java.awt.Container.dispatchEventImpl(Container.java:1627)
         at java.awt.Component.dispatchEvent(Component.java:3477)
         at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)
         at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)
         at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
         at java.awt.Container.dispatchEventImpl(Container.java:1613)
         at java.awt.Window.dispatchEventImpl(Window.java:1606)
         at java.awt.Component.dispatchEvent(Component.java:3477)
         at java.awt.EventQueue.dispatchEvent(EventQueue.java:480)
         at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:141)
         at java.awt.Dialog$1.run(Dialog.java:542)
         at java.awt.Dialog$3.run(Dialog.java:569)
         at java.security.AccessController.doPrivileged(Native Method)
         at java.awt.Dialog.show(Dialog.java:567)
         at java.awt.Component.show(Component.java:1133)
         at java.awt.Component.setVisible(Component.java:1088)
         at oracle.bali.ewt.wizard.WizardDialog.runDialog(Unknown Source)
         at oracle.bali.ewt.wizard.WizardDialog.runDialog(Unknown Source)
         at oracle.wh.ui.owbcommon.OWBWizard.initialize(OWBWizard.java:815)
         at oracle.wh.ui.owbcommon.OWBWizard.<init>(OWBWizard.java:168)
         at oracle.wh.ui.owbcommon.OWBWizard.<init>(OWBWizard.java:147)
         at oracle.wh.ui.owbcommon.IdeUtils._doLaunchDefinition(IdeUtils.java:1188)
         at oracle.wh.ui.owbcommon.IdeUtils.showWizard(IdeUtils.java:471)
         at oracle.wh.ui.owbcommon.IdeUtils.showWizard(IdeUtils.java:427)
         at oracle.wh.ui.jcommon.tree.WBRepositoryObjectTree.launchWizard(WBRepositoryObjectTree.java:502)
         at oracle.wh.ui.console.commands.CreateByWizardCmd.showUI(CreateByWizardCmd.java:33)
         at oracle.wh.ui.console.commands.CreateCmd.performAction(CreateCmd.java:76)
         at oracle.wh.ui.console.commands.TreeMenuHandler$1.run(TreeMenuHandler.java:188)
         at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:189)
         at java.awt.EventQueue.dispatchEvent(EventQueue.java:478)
         at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
         at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
    >
    Could you please let me know how to solve this and how to create such location with OMB*Plus?
    Thanks,
    Sebastian

    Hi David,
    Thanks a lot for the tip. Now I was able to use this and using a registered location.
    OMBCREATE LOCATION 'X' SET PROPERTIES (TYPE,VERSION,CONNECTION_TYPE, SCHEMA) VALUES ('ORACLE_DATABASE','11.1','DATABASE_LINK','MY_SCHEMA')
    OMBCREATE CONNECTOR 'REGISTERED_LOC/X SET PROPERTIES (DATABASE_LINK_NAME) VALUES ('MY_DBLINK') SET REF LOCATION 'X'
    OMBCOMMIT
    OMBCC '/MY_PROJECT'
    OMBCAC 'DEFAULT_CONFIGURATION'
    OMBCONNECT CONTROL_CENTER USE 'owb_user/owb_user'
    OMBREGISTER LOCATION 'X' REUSE
    OMBCOMMITBut now my question is the following.
    I am having problems to import the metadata from X.
    When create a module (source), I am able to make "data location" from location 'X' but when I want to import a table from location 'X' is not possible, because it shows as a plausible metadata location as "REGISTERED_LOC"
    Could you please let me know how to use 'X' as metadata location?
    Thanks!
    Sebastián

  • Ora-12154  problem with database link and transparent gateway

    Hello,
    I’m trying to make a communication between oracle and SQL server 2005.
    I use oracle 10g E.E Release 10.2.0.3.0 and the transparent gateway for SQL server 10201_gatway_win32.zip.
    Install:
    The oracle database is installed into a server named ss-serv. This server has two partition disk C and E. Oracle database is installed in E and the gateway in C. There is already a database (instance) running in the oracle home (in E).
    I configured the gateway as described into: http://download.oracle.com/docs/cd/B...3/conf_sql.htm.
    In sql server 2005, there is a database running named ClientTricks.
    I created a user named Avogadro with a login.
    In the partition C where the gateway is installed, the file inittg4msql.ora is like this:
    HS_FDS_CONNECT_INFO= ss-serv. ClientTricks
    The file sqlnet.ora where the gateway is installed is configured like this:
    SQLNET.AUTHENTIFICATION_SERVICES=(NTS)
    NAMES.DIRECTORY_PATH = (TNSNAMES, EZCONNECT)
    I configured the listener that is in the C partition where the gateway is installed, and the tnsnames that is in the oracle database in E partition disk like this:
    Listener :
    LISTENER=
    (ADDRESS=
    (PROTOCOL=TCP)
    (HOST=ss-serv)
    (PORT=1521))
    SID_LIST_LISTENER=
    (SID_LIST=
    (SID_DESC=
    (SID_NAME=tg4msql)
    (ORACLE_HOME=C:\oracle\product\10.2.0\tg_1)
    (PROGRAM=tg4msql)
    tnsnames:
    mytg4msql=
    (DESCRIPTION=
    (ADDRESS=
    (PROTOCOL=TCP)
    (HOST=ss-serv)
    (PORT=1521)
    (CONNECT_DATA=
    (SID=tg4msql))
    (HS=OK))
    After edited the listener, I stop and start the listener for the transparent gateway from administrative tools in the services.
    Then, connected in oracle (in a database named fakeclient) I created a database link in sqlplus.The the dblink were created, but when I tried to querry some data from ClientTricks by executing the following instructions:
    select * from s_client@dblink
    i got this fatal and terrible error :
    ora-12154 TNS:could not resolve the connect identifier specified
    I verified all my procedure and stapes, all seems to be good. I did a tnsping of mytg4msql
    I got this error in the command prompt:TNS-03505 fail to resolve name
    Could someone help me ?
    Sorry for my English ,I’m French
    best regards

    Hi Mkirtley,
    i clarify you what i've done:
    Pease have a look in the link in my first post. Then, i said that in oracle database home the listener is in port 1521
    here is this listener:
    SID_LIST_LISTENER=
    (SID_LIST=
    (SID_DESC=
    (SID_NAME=PLSExtproc)
    (ORACLE_HOME=E:\oracle\production\10.2.0\db_1)
    (PROGRAM=extproc)
    LISTENER=
    (DESCRIPTION_LIST=
    (DESCRIPTION=
    (ADDRESS= (PROTOCOL=TCP)(HOST=ss-serv)(PORT=1521))
    (ADDRESS= (PROTOCOL=IPC)(KEY=EXTPROC0))
    Here is the tnsnames.ora in oracle database home:
    N.B in this ora file, there's already some descriptions for the database running, so i just add these lines under the description in ora file.Here is:
    Jest=
    (DESCRIPTION=
    (ADDRESS_LIST=
    (ADDRESS=(PROTOCOL=TCP)(HOST=ss-serv)(PORT=2000))
    (CONNECT_DATA=
    (SID=tg4msql)
    (HS=OK)
    for the listener of the gateway (installed in C partition):
    SID_LIST_LISTENER=
    (SID_LIST=
    (SID_DESC=
    (SID_NAME=tg4msql)
    (ORACLE_HOME=C:\oracle\production\10.2.0\tg_1)
    (PROGRAM=tg4msql)
    LISTENER=
    (DESCRIPTION_LIST=
    (DESCRIPTION=
    (ADDRESS= (PROTOCOL=TCP)(HOST=ss-serv)(PORT=2000))
    (ADDRESS= (PROTOCOL=IPC)(KEY=EXTPROC1))
    here are all i did.
    Best regards

  • Getting result set from stored procedures in database controls in weblogic

    I am calling a stored procedure from database control which actually returns a result set
    when i call the stored procedure like
    * @jc:sql statement="call PROC4()"
    ResultSet sampleProc() throws SQLException;
    it gives me exception saying
    "weblogic.jws.control.ControlException: Method sampleProc is DML but does not return void or int"
    I would appreciate any help
    Thanks,
    Uma

    Thanks for you reply!
    1) The stored procedure has head
    CREATE OR REPLACE PROCEDURE X_OWNER.DISPLAY_ADDRESS
    cv_1 IN OUT SYS_REFCURSOR
    AS
    err_msg VARCHAR2(100);
    BEGIN
    --Adaptive Server has expanded all '*' elements in the following statement
    OPEN cv_1 FOR
    Select ...
    commit;
    EXCEPTION
    WHEN OTHERS THEN
    err_msg := SQLERRM;
    dbms_output.put_line (err_msg);
    ROLLBACK;
    END;
    If I only run select .. in DBArtisan, it display all 2030,000 rows in 3:44 minutes
    2) But when call stored procedure, it will take 80-100 minutes .
    3) The stored procedure is translated from sybase using migration tools, it's very simple, in sybase it just
    CREATE PROCEDURE X_OWNER.DISPLAY_ADDRESS
    AS
    BEGIN
    select ..
    The select part is exact same.
    4) The perl code is almost exact same, except the query sql:
    sybase verson: my $sql ="exec DISPLAY_ADDRESS";
    and no need bind the cursor parameter.
    This is batch job, we create a file with all information, and ftp to clients everynight.
    Thanks!
    Rulin

  • ORA-00022 with Database Link and Trigger

    Hello altogether,
    I got a very strange behaviour with my oracle 10.2.
    I have two nets N1 and N2, where N1 can access the servers in N2, but not the other way round. In both nets I have an Oracle database running (D1 and D2).
    In N1 I calculate some data, which must be replicated to the database in N2. I do this by using triggers on my tables in database D1 copying the inserted or changed data to D2 by using a shared public database link.
    This works fine most of the time. But sometimes I get the following error:
    ERROR [STDERR] Caused by: java.sql.SQLException: ORA-02068: following severe error from D2
    ORA-00022: invalid session ID; access denied
    ORA-06512: at "CUSTOMER", line 13
    ORA-04088: error during execution of trigger 'CUSTOMER'
    When I use the database links manually, they work.
    Any idea?
    Thank you!!
    Daniel

    The ORA-02068 message might be important
    02068, 00000, "following severe error from %s%s"
    // *Cause: A severe error (disconnect, fatal Oracle error) received from
    //         the indicated database link.  See following error text.
    // *Action: Contact the remote system administrator.Have you searched Oracle support for any bugs associated with the ORA-02068?
    Was the remote session killed, the remote database changed to restricted session, or bounced?
    I take it the distributed session is created using a dedicated session and not shared server?
    HTH -- Mark D Powell --

  • Stored procedure to identify column names from a lookup table

    I have a working PL/SQL stored proc as below:
    CREATE OR REPLACE PROCEDURE PROC_TEST IS
    CURSOR GET_TEST_VALUES IS
    SELECT
    MF_master.comp_service_b,MF_master.normal_form_amount_b, MF_master.plan_id_b, MF_master.plan_percentage_b, MF_master.plan_service_b,MF_master.autoid,     ORA_master.comp_service_v, ORA_master.normal_form_amount_v,
    ORA_master.plan_id_v, ORA_master.plan_percentage_v,
    ORA_master.plan_service_v, ORA_master.autoid,     ORA_master.test_var     FROM MF_master, ORA_master
    WHERE ((MF_master.autoid = ORA_master.autoid));
    BEGIN
    FOR REC IN GET_TEST_VALUES LOOP
    begin
    if rec.test_var='SVC' then
    if (to_number(rec.plan_service_b) = to_number(rec.plan_service_v) ) and
    (to_number(rec.comp_service_b) = to_number(rec.comp_service_v) ) then
    update ORA_master set status_v = 'COMPLETE',last_updt_user_v = 'PROCEDURE',last_updt_date_v = SYSTIMESTAMP where autoid = rec.autoid;
    else
    update ORA_master set status_v = 'INCOMPLETE',last_updt_user_v = 'PROCEDURE',last_updt_date_v = SYSTIMESTAMP where autoid = rec.autoid;
    end if;
    end if;
    if rec.test_var = 'TERM' then
    if (to_number(rec.plan_percentage_b) = to_number(rec.plan_percentage_v) ) and
    (to_number(rec.normal_form_amount_b) = to_number(rec.normal_form_amount_v) )
    then
    update ORA_master set status_v = 'COMPLETE',last_updt_user_v = 'PROCEDURE',last_updt_date_v = SYSTIMESTAMP where autoid = rec.autoid;
    else
    update ORA_master set status_v = 'INCOMPLETE',last_updt_user_v = 'PROCEDURE',last_updt_date_v = SYSTIMESTAMP where autoid = rec.autoid;
    end if;
    end if;
         end;
         END LOOP;
         COMMIT;
    END;
    What I am doing here is, if test_var = 'SVC', I am comparing 2 columns, plan_service_b and comp_service_b(with plan_service_v and
    comp_service_v)
    Similarly, for test_var = 'TERM', it is plan_percentage_b and normal_form_amount_b(with plan_percentage_v and normal_form_amount_v)
    The above works fine as of now, but I am looking for a way to make this design more dynamic. In other words, these comparison columns may change from time
    to time and each time something changes, I will have to change this code. Rather, I am looking for a way to have the comparison columns in a
    lookup table that I can query to get what needs to be compared.
    My thought is :
    CREATE TABLE COMPARISON_COL_LOOKUP
    (test_var VARCHAR2(10),
    MF_column VARCHAR2(30),
    ORA_column VARCHAR2(30) );
    And then, insert
    INSERT INTO COMPARISON_COL_LOOKUP ('SVC','PLAN_SERVICE_B','PLAN_SERVICE_V');
    INSERT INTO COMPARISON_COL_LOOKUP ('SVC','COMP_SERVICE_B','COMP_SERVICE_V');
    INSERT INTO COMPARISON_COL_LOOKUP ('TERM','PLAN_PERCENTAGE_B','PLAN_PERCENTAGE_V');
    INSERT INTO COMPARISON_COL_LOOKUP ('TERM','NORMAL_FORM_AMOUNT_B','NORMAL_FORM_AMOUNT_V');
    commit;
    In this way, when tomorrow, when something changes - like new columns need to be compared for SVC or TERM, OR, if any comparisons need to
    be removed, all I need to do is to change the data in this lookup table !
    Now here's my question --- If I have this lookup table, how best can I update my above stored procedure to use this lookup table so that I don't need to
    hard-code the column names for comparison ?
    Any thoughts/suggestions are appreciated.

    While it is certainly technically possible to use dynamic SQL here, I would suggest that you make absolutely certain that you're not making things unnecessarily complicated...
    Dynamic SQL is generally substantially harder to write, debug, and maintain than equivalent static SQL. In addition, it takes a lot more work to ensure that dynamic SQL performs as well as static SQL (i.e. you now have to explicitly use bind variables) and that you're not introducing security holes via SQL injection.
    If your comparisons are likely to change infrequently, and particularly as those changes would imply changes to the underlying requirements, I would tend to be biased toward keeping the working procedure and just planning on making code changes periodically.
    Of course, not knowing your particular requirements, I certainly can't be certain that dynamic SQL would be inappropriate here, but I have seen lots of folks unnecessarily complicate their systems by building overly flexible systems that were painful to support and extend.
    Justin

  • Opening a stored procedure in Crystal 12 with all formatting intact

    Is it possible to use Crystal to revise something in a stored procedure when the entire report was created via SQL?
    For clarity, I didn't create the procedure in question. I am trying to update some wording in a text box, but when I tried to pull up the stored procedure in Crystal, it brought  up a blank report with no formatting, no images, and no text boxes. I therefore assume that all of this non-field data has been coded into the stored procedure.
    Please assume for the purposes of this question that manually recreating the report from scratch is not an option. Also please assume that Crystal is the only tool I have available for updating the text box.
    In case it is relevant, I am using Crystal 12/2008, and the stored procedure is probably intended for Crystal 10 or 11. However, I am pretty sure it wouldn't matter which version it was intended for.

    Jane,
    1) All your stored procedure is going to do, at least as it pertains to CR (any version), is return a result set. It can do hundreds of things in the background, but for it to be of any use in CR it must simply provide a set of records... Nothing else.
    It will not hold any information pertaining to the report definition itself... No formatting... Nothing about manually placed text boxes...
    2) Stored Procedures aren't written for any specific report writing software. They are written for specific databases.
    That said, an SP can be written for the purpose of reporting in general in that it sole purpose in life is to supply a set of records when called upon to do so by whatever reporting software calls on it.
    3) You can't "Call up" an SP in CR. An SP is code that's stored on your database server. If you with to view the actual code that makes up the SP itself, throw "how to view the code in a stored procedure" into a Google search..
    HTH,
    Jason

Maybe you are looking for

  • Preview and pdf's in Safari

    Hi, I prefer to view pdf pop up links in Acrobat Reader. There seem to be more steps to save a pdf opened in Preview than the one step to save a pdf opened in Reader. I used "more info" in Finder to change the preference for all pdf files to open in

  • 3rd generation wont boot after update

    We just did an OS update and now all we have is this screen showing the itunes logo and the usb cable.  I plug it in and itunes said it does not reconginize the ipod and says its in recovery mode.

  • Add userfields to document ?

    hi, does anybody knows how i can add userfields to documents by DI ? Some code snipets would be nice. thanks Markus

  • Lync 2010 Spell Check

    Hi Is there a way to get spell checking working with Lync 2010 without having to set up third party software? I have Office 2010 installed and I did read somewhere that if you download and install Office 2013 proofing tools it should work, but it has

  • Photography - cutting out images into new photo

    Can anyone suggest an easy app to use to cut a images out of 1 photo and put it into another photo. I have an iPad and MacBook . Jane