PLS-00435: DML statement without BULK In-BIND cannot be used inside FORALL

See code below: Have googled the error but not sure how to fix the code. ANy help would be most greatful.
DECLARE
CURSOR c1
IS
SELECT /*+ parallel(tr,8)*/ DISTINCT tr.ACC ACC, tr.MET_ID METID, to_char(max(TRUNC(PKG_LSR_IMPOSITION.convertXXMMDDToDate(tr.DATETR0))),'YYYY') dt
FROM CTTR0FIL_CDC tr
JOIN transaction_action_sd sd on (sd.TRANSACTION_CODE = tr.RESULT)
WHERE sd.ACTION_TYPE = 'PAYMENT'
and to_char(TRUNC(PKG_LSR_IMPOSITION.convertXXMMDDToDate(tr.DATETR0)),'YYYY') = '1987'
GROUP BY tr.ACC, tr.MET_ID, to_char(TRUNC(PKG_LSR_IMPOSITION.convertXXMMDDToDate(tr.DATETR0)),'YYYY');
SUBTYPE PAY_DATES IS c1%ROWTYPE;
TYPE TMP_TABLE IS TABLE OF PAY_DATES INDEX BY PLS_INTEGER;
TBROWS TMP_TABLE;
temp VARCHAR2(100);
Begin
DBMS_OUTPUT.ENABLE(10000);
OPEN c1;
LOOP
FETCH c1 BULK COLLECT INTO TBROWS LIMIT 1000;
FORALL i IN 1..TBROWS.COUNT
SELECT /*+ parallel(da,8)*/ da.ACC INTO temp
          FROM CTDA0FIL_CDC da
WHERE da.ACC = TBROWS(i).ACC AND da.MET_ID = TBROWS(i).MET_ID AND da.ACC = '07000006P' AND da.MET_ID = 4;
     DBMS_OUTPUT.PUT_LINE('inside');
EXIT WHEN c1%notfound;
END LOOP;
CLOSE c1;
END;
Thanks
Simon

I tried using a normal for loop instead of a forall loop (see code below). But this came up the error also see below. Or can I not use selects in this way???
OPEN c1;
LOOP
FETCH c1 BULK COLLECT INTO tbrows LIMIT 1000;
FOR i IN TBROWS.FIRST .. TBROWS.LAST
     LOOP
          SELECT /*+ parallel(da,8)*/ da.ACC INTO temp
          FROM CTDA0FIL_CDC da WHERE da.ACC = TBROWS(i).ACC AND da.MET_ID = TBROWS(i).MET_ID AND da.ACC = '07000006P' AND da.MET_ID = 4;
     DBMS_OUTPUT.PUT_LINE('inside');
EXIT WHEN c1%notfound;
END LOOP;
END LOOP;
CLOSE c1;
END;
Error:
DECLARE
ERROR at line 1:
ORA-06502: PL/SQL: numeric or value error
ORA-06512: at line 24

Similar Messages

  • PLS-00435: DML statement without BULK In-BIND cannot be used

    My requirement
    I am dynamically creating a staging table my_stg, and then populate it. Seems simple, but not sure why i get this error,
    create table gtest4(myid varchar2(10), mykey varchar2(10));
    create table gtest5(myid varchar2(10), mykey varchar2(10));
    insert into gtest4 values(1,3);
    insert into gtest4 values(2,7);
    insert into gtest5 values(5,3);
    insert into gtest5 values (1,7);
    commit;
    /* Formatted on 2012/01/27 17:52 (Formatter Plus v4.8.8) */
    CREATE OR REPLACE PROCEDURE px
    IS
    TYPE rectype IS RECORD (
    myid VARCHAR2 (100),
    mykey VARCHAR2 (100)
    TYPE tabtype IS TABLE OF rectype
    INDEX BY BINARY_INTEGER;
    rec tabtype;
    cur sys_refcursor;
    BEGIN
    EXECUTE IMMEDIATE 'create table my_stg(myid varchar2(100), mykey varchar2(100)) ';
    OPEN cur FOR 'select a.myid, b.mykey
    from gtest4 a, gtest5 b
    where a.mykey = b.mykey';
    LOOP
    FETCH cur
    BULK COLLECT INTO rec LIMIT 500;
    FORALL i IN 1 .. rec.COUNT
    EXECUTE IMMEDIATE 'insert into my_stg(myid, mykey) values (rec(i).myid,
    rec(i).mykey)';
    EXIT WHEN cur%NOTFOUND;
    END LOOP;
    END;
    I compile the above proc, and get
    PLS-00435: DML statement without BULK In-BIND cannot be used
    the reason I do insert in execute immediate is because the table my_stg does not exist, it is created on the fly

    I tried the below, used plsql table variables instead of record type
    CREATE OR REPLACE PROCEDURE px
    IS
    TYPE rectype IS RECORD (
    myid VARCHAR2 (100),
    mykey VARCHAR2 (100)
    TYPE tabtype1 IS TABLE OF varchar2(100)
    INDEX BY BINARY_INTEGER;
    TYPE tabtype2 IS TABLE OF varchar2(100)
    INDEX BY BINARY_INTEGER;
    rec1 tabtype1;
    rec2 tabtype2;
    cur sys_refcursor;
    BEGIN
    EXECUTE IMMEDIATE 'create table my_stg(myid varchar2(100), mykey varchar2(100)) ';
    OPEN cur FOR 'select a.myid, b.mykey
    from gtest4 a, gtest5 b
    where a.mykey = b.mykey';
    LOOP
    FETCH cur
    BULK COLLECT INTO rec1, rec2 LIMIT 500;
    FORALL i IN 1 .. rec.COUNT
    execute immediate 'insert into my_stg(myid, mykey) values (:1,:2)
    using rec1(i).myid, rec2(i).mykey;
    EXIT WHEN cur%NOTFOUND;
    END LOOP;
    END;
    I get error
    PLS-00103: Encountered the symbol "insert into my_stg(myi
    mykey) values (:1,:2)
    using rec1(i).myi" when expecting one of the following:
    ( - + case mod new not null <an identifier>
    <a double-quoted delimited-identifier> <a bind variable>
    count current exists max min prior sql stddev sum varianc
    execute forall merge time timestamp interval date
    <a string literal with character set specification>
    <a number> <a single-quoted SQL string> pipe
    <an alternatively-quoted string literal
    Please help

  • PLS-00435 error

    Hello,
    i got PLS-00435 when compiling the following procedure:
    create or replace type marire_ob is object(id_dept number, salariu number)
    create or replace type marire_angajati is table of marire_ob;
    create or replace procedure proc_upd_salary (mariri marire_angajati) is
      cursor cr_angajati(p_id_dept number) is
        select * from employees where department_id=p_id_dept;
      type angajati is table of cr_angajati%rowtype;
      i_angajati angajati;
    begin
           for i in mariri.first..mariri.last loop
                 open cr_angajati(mariri(i).id_dept);
                 fetch cr_angajati bulk collect into i_angajati;
                 forall k in i_angajati.first..i_angajati.last
                   update employees set salary = salary + mariri(i).salariu
                      where employee_id= 1222;
                              --and salary<salariu_exc;
               end loop;
               close cr_angajati;
    end;Compilation errors for PROCEDURE FLORINP.PROC_UPD_SALARY
    Error: PLS-00435: DML statement without BULK In-BIND cannot be used inside FORALL
    Line: 12
    employees is from HR schema
    Please help..
    Regards,
    Edited by: Talkabout23 on 24-Jul-2009 02:12

    in the update statement? is it obligatory to use it?
    create or replace procedure proc_upd_salary (mariri marire_angajati) is
      cursor cr_angajati(p_id_dept number) is
        select * from myemps where department_id=p_id_dept;
      type angajati is table of cr_angajati%rowtype;
      i_angajati angajati;
    begin
           for i in mariri.first..mariri.last loop
                 open cr_angajati(mariri(i).id_dept);
                 fetch cr_angajati bulk collect into i_angajati;
                 forall k in i_angajati.first..i_angajati.last
                   update myemps set salary = salary + mariri(i).salariu
                      where employee_id= mariri(k);
                              --and salary<salariu_exc;
               end loop;
               close cr_angajati;
    end;now i got
    Compilation errors for PROCEDURE FLORINP.PROC_UPD_SALARY
    Error: PL/SQL: ORA-00932: inconsistent datatypes: expected NUMBER got FLORINP.MARIRE_OB
    Line: 13
    Error: PL/SQL: SQL Statement ignored
    Line: 12
    Edited by: Talkabout23 on 24-Jul-2009 02:41

  • BULK In-BIND and FORALL

    Hi All,
    Could someone help me in solving the error 'DML statement without BULK In-BIND cannot be used inside FORALL'. I am getting the error when running the following query.
    DECLARE
    v_seq_row_id NUMBER;
    TYPE ap_addr_tt IS TABLE OF IN_EIM_ADDR_PER.AP_ADDR%TYPE;
    TYPE ap_addr_name_tt IS TABLE OF IN_EIM_ADDR_PER.AP_ADDR_NAME%TYPE;
    TYPE ap_disc_flg_tt IS TABLE OF IN_EIM_ADDR_PER.AP_DISACLEANSE_FLG%TYPE;
    TYPE ap_name_lock_flg_tt IS TABLE OF IN_EIM_ADDR_PER.AP_NAME_LOCK_FLG%TYPE;
    TYPE ap_pre_flg_tt IS TABLE OF IN_EIM_ADDR_PER.AP_PREMISE_FLG%TYPE;
    coll_v_AP_ADDR ap_addr_tt;
    coll_v_AP_ADDR_NAME ap_addr_tt;
    coll_v_AP_DISACLEANSE_FLG ap_disc_flg_tt;
    coll_v_AP_NAME_LOCK_FLG ap_name_lock_flg_tt;
    coll_v_AP_PREMISE_FLG ap_pre_flg_tt;
    BEGIN
    SELECT
    DISTINCT(AP_ADDR),
    AP_ADDR_NAME,
    AP_DISACLEANSE_FLG,
    AP_NAME_LOCK_FLG,
    AP_PREMISE_FLG
    BULK COLLECT INTO
    coll_v_AP_ADDR,
    coll_v_AP_ADDR_NAME,
    coll_v_AP_DISACLEANSE_FLG,
    coll_v_AP_NAME_LOCK_FLG,
    coll_v_AP_PREMISE_FLG
    FROM
    IN_EIM_ADDR_PER;
    FORALL indx IN coll_v_AP_ADDR.FIRST.. coll_v_AP_ADDR.LAST
    SELECT seq_dm_row_id.NEXTVAL INTO v_seq_row_id FROM DUAL;
    /* for test only - more columns from will be included*/
    INSERT INTO SIEBEL.EIM_ADDR_PER
    (ROW_ID) VALUES (v_seq_row_id );
    END;
    I am new to collections and used cursors most of the time. It would be great if someone help me in solving this issue, which I am trying for looong time.
    Thanks.
    Yar

    Hi,
    I like to get clarified, Instead of the declaring individual variables can I try some like below. Could anyone advice me on this.
    TYPE in_tbl_col_type_rec IS RECORD (
    ap_addr_tt IN_EIM_ADDR_PER.AP_ADDR%TYPE,
    ap_addr_name_tt IN_EIM_ADDR_PER.AP_ADDR_NAME%TYPE,
    ap_disc_flg_tt IN_EIM_ADDR_PER.AP_DISACLEANSE_FLG%TYPE,
    ap_name_lock_flg_tt IN_EIM_ADDR_PER.AP_NAME_LOCK_FLG%TYPE,
    ap_pre_flg_tt IN_EIM_ADDR_PER.AP_PREMISE_FLG%TYPE);
    TYPE in_tbl_col_type_tbl IS TABLE OF in_tbl_col_type_rec
    INDEX BY PLS_INTEGER;
    v_in_tbl_col in_tbl_col_type_rec;
    And I am trying to use,
    FORALL indx IN v_in_tbl_col.FIRST.. v_in_tbl_col.LAST
    which is giving the error 'component 'FIRST' must be declared'.
    Thanks,
    Yar

  • Bulk in Bind exception

    Hello there,
    I wanted to ask is there a limitation for use of FORALL with PL SQL table.COUNT
    i'm getting error Bulk in Bind exception by the following codesnippet:
    FORALL i in 1 .. cst.COUNT
    INSERT ........
    COMMIT;
    END LOOP;
    Database is 10g

    Hi,
    I encountered a similar Bulk Bind problem some days back while using forall and Table collections. May be it is similar to yours.
    Well I tried to reference different fields inside the Table Collection within a single forall insert. This problem can be avoided if you break your single Table collection into multiple single column collections. Please see below for example:
    SQL> CREATE TABLE test_bulk_forall
      2  (
      3  name1 VARCHAR2(100),
      4  name2 VARCHAR2(100))
      5  ;
    Table created.Problem code:
    SQL> DECLARE
      2      TYPE v_Rec_Bulk_Forall IS RECORD ( vName1 test_bulk_forall.name1%TYPE
      3                                       , vName2 test_bulk_forall.name2%TYPE);
      4      TYPE v_Typ_Bulk_Forall Is TABLE OF v_Rec_Bulk_Forall;
      5      v_Tab_Bulk_Forall v_Typ_Bulk_Forall;
      6  BEGIN
      7      v_Tab_Bulk_Forall(1).vName1 := 'FirstName1';
      8      v_Tab_Bulk_Forall(1).vName2 := 'LastName1';
      9      v_Tab_Bulk_Forall(2).vName1 := 'FirstName2';
    10      v_Tab_Bulk_Forall(2).vName2 := 'LastName2';
    11      FORALL Loop_Tab_Bulk_Forall IN 1..v_Tab_Bulk_Forall.COUNT
    12          INSERT INTO test_bulk_forall
    13              (Name1,
    14               Name2)
    15             VALUES
    16                 (v_Tab_Bulk_Forall(Loop_Tab_Bulk_Forall).vName1
    17                 ,v_Tab_Bulk_Forall(Loop_Tab_Bulk_Forall).vName2);
    18     COMMIT;
    19  END;
    20  /
                        (v_Tab_Bulk_Forall(Loop_Tab_Bulk_Forall).vName1
    ERROR at line 16:
    ORA-06550: line 16, column 8:
    PLS-00436: implementation restriction: cannot reference fields of BULK In-BIND
    table of records
    ORA-06550: line 16, column 8:
    PLS-00382: expression is of wrong type
    ORA-06550: line 17, column 5:
    PLS-00436: implementation restriction: cannot reference fields of BULK In-BIND
    table of records
    ORA-06550: line 17, column 5:
    PLS-00382: expression is of wrong type
    ORA-06550: line 16, column 8:
    PL/SQL: ORA-22806: not an object or REF
    ORA-06550: line 12, column 9:
    PL/SQL: SQL Statement ignoredCorrected Code:
    SQL> DECLARE
      2      TYPE v_Typ_Bulk_Forall Is TABLE OF VARCHAR2(20) INDEX BY PLS_INTEGER;
      3      v_Tab_Bulk_Forall_Name1 v_Typ_Bulk_Forall;
      4      v_Tab_Bulk_Forall_Name2 v_Typ_Bulk_Forall;
      5  BEGIN
      6      v_Tab_Bulk_Forall_Name1(1) := 'FirstName1';
      7      v_Tab_Bulk_Forall_Name2(1) := 'LastName1';
      8      v_Tab_Bulk_Forall_Name1(2) := 'FirstName2';
      9      v_Tab_Bulk_Forall_Name2(2) := 'LastName2';
    10      FORALL Loop_Tab_Bulk_Forall IN 1..v_Tab_Bulk_Forall_Name1.COUNT
    11          INSERT INTO test_bulk_forall
    12              (Name1,
    13               Name2)
    14             VALUES
    15                 (v_Tab_Bulk_Forall_Name1(Loop_Tab_Bulk_Forall)
    16                 ,v_Tab_Bulk_Forall_Name2(Loop_Tab_Bulk_Forall));
    17     COMMIT;
    18  END;
    19  /
    PL/SQL procedure successfully completed.
    SQL> select * from test_bulk_forall;
    NAME1         NAME2
    FirstName1   LastName1
    FirstName2   LastName2Hope this helps.

  • LOOP inside FORALL in bulk binding

    Can I use a loop inside forall in bulk bind updates?
    as I understand, forall statement strictly loops through the length of the bulk limit size for the immediately following statement only.
    I am attempting to use a loop there to update more than one table.
    cursor c is select id from temp where dt_date > sysdate-30;
    BEGIN
    loop
    fetch c into v_id;
    limit 1000;
    forall i in 1..v_id.count
    UPDATE table_one set new_id = v_id(i);
    exit when C%NOTFOUND;
    end loop;
    end;
    I want to update another table table_two also immediately after updating table_one like this:
    forall i in 1..v_id.count
    UPDATE table_one set new_id = v_id(i);
    BEGIN select nvl(code,'N/A') into v_code from T_CODES where ID_NO = v_id(i); EXCEPTION WHEN NO_DATA_FOUND v_code='N/A'; END;
    UPDATE table_two set new_code =v_code;
    exit when C% not found.
    This is not working and when I run it, I get an error saying encountered BEGIN when one of the following is expected.
    I got around this by having another FOR loop just to set up the values in another array variable and using that value in another second forall loop to update table_two.
    Is there any way to do this multiple table udpates in bulkbinding under one forall loop that would enable to do some derivation/calculation if needed among variables [not array variables, regular datatype variables].
    Can we have like
    forall j in 1.. v_id.count
    LOOP
    update table 1;
    derive values for updating table 2;
    update table 2;
    END LOOP;
    Thank You.

    Well, without questioning reasions why do you want this, you are confusing bulk select and forall. You need:
    begin
        loop
          fetch c bulk collect into v_id limit 1000;
          exit when v_id.count = 0;
          forall i in 1..v_id.count
            UPDATE table_one set new_id = v_id(i);
        end loop;
    end;
    /SY.

  • Golden Gate - DML statements are not replicated to target database

    Hi,
    Testing Environment
    Source:
    OS: RHEL 4.6, Database: 11gR2, Golden Gate 10.4, ASM
    extract ext1
    connection to database
    userid ggate, password qwerty
    hostname and port for trail
    rmthost win2003, mgrport 7800
    path and name for trial
    rmttrail C:\app\admin\GOLDENGATE\dirdat\lt
    EXTTRAIL /u01/oracle/goldengate/dirdat/lt
    --TRANLOGOPTIONS ASMUSER SYS@ASM, ASMPASSWORD sys ALTARCHIVELOGDEST /u03/app/arch/ORCL/archivelog
    --DDL support
    ddl include mapped objname sender.*;
    --DML
    table sender.*;
    Target:
    OS: Windows 2003, Database: 11gR2, Golden Gate 10.4
    --replicate group
    replicat rep1
    --source and target defintions
    ASSUMETARGETDEFS
    --target database login
    userid ggate, password ggate
    --file for discared transaction
    discardfile C:\app\admin\GOLDENGATE\discard\rep1_disc.txt, append, megabytes 10
    --ddl support
    DDL
    --specifying table mapping
    map sender.* ,target receiver.* ;
    I've Successfully setup Oracle Golden Gate test environment as above.
    DDL statements are replicating successfully to target database.
    while DML statements are not being replicated to target database.
    Pl. try to solve the problem
    Regards,
    Edited by: Vihang Astik on Jul 2, 2010 2:33 PM

    Almost ok but how you will handle the overlapping (transactions captured by expdp & captured by Extract too) of transactions for the new table ?
    Metalink doc ID 1332674.1 has the complete steps. Follow the "without HANDLECOLLISIONS" approach.

  • Forall with multi dml statements

    hi
    I am trying to write a procedure for learning purpose, but it gives error message.
    Normally we use for loops, it is slow but for loop is a block and you can execute many select and dml statements inside for loop.
    I want to achieve this with bulk collect and for all but I can not. Can you help me?
    /* Formatted on 2009/07/28 07:34 (Formatter Plus v4.8.8) */
    CREATE OR REPLACE PROCEDURE bulk_collect_query
    IS
    TYPE employee_tt IS TABLE OF employees.employee_id%TYPE
    INDEX BY BINARY_INTEGER;
    TYPE salary_tt IS TABLE OF employees.salary%TYPE
    INDEX BY BINARY_INTEGER;
    TYPE hire_date_tt IS TABLE OF employees.hire_date%TYPE
    INDEX BY BINARY_INTEGER;
    hire_datet hire_date_tt;
    employeet employee_tt;
    salariet salary_tt;
    BEGIN
    DBMS_OUTPUT.put_line ('Before Bulk Collect: ' || SYSTIMESTAMP);
    SELECT employee_id, salary, hire_date
    BULK COLLECT INTO employeet, salariet, hire_datet
    FROM employees;
    DBMS_OUTPUT.put_line ('After Bulk Collect: ' || SYSTIMESTAMP);
    FORALL indx IN employeet.FIRST .. employeet.LAST
    begin
    INSERT INTO t_emp_history
    (employee_id, salary, hire_date
    VALUES (employeet (indx), salariet (indx), hire_datet (indx)
    INSERT INTO t_emp_history
    (employee_id, salary, hire_date
    VALUES (employeet (indx), salariet (indx), hire_datet (indx)
    end;
    DBMS_OUTPUT.put_line ('After FORALL: ' || SYSTIMESTAMP);
    COMMIT;
    END;
    /

    /* Formatted on 2009/07/28 07:34 (Formatter Plus v4.8.8) */
    CREATE OR REPLACE PROCEDURE bulk_collect_query
    IS
    type v_datareturn IS record(
    employee_id employees.employee_id%TYPE,
    salary employees.salary%TYPE,
    hire_date employees.hire_date%TYPE
    TYPE employee_tt IS TABLE OF v_datareturn
    INDEX BY BINARY_INTEGER;
    employeet employee_tt;
    CURSOR c IS
    SELECT employee_id, salary, hire_date
    FROM employees;
    BEGIN
    DBMS_OUTPUT.put_line ('Before Bulk Collect: ' || SYSTIMESTAMP);
    OPEN c;
    FETCH c BULK COLLECT INTO employeet;
        FORALL i IN 1..employeet.COUNT
        INSERT INTO t_emp_history VALUES employeet(i);
        CLOSE c;
    DBMS_OUTPUT.put_line ('After Bulk Collect: ' || SYSTIMESTAMP);
    COMMIT;
    END;
    /Untested one.....
    Ravi Kumar

  • Execute multiple dml statements concurrently.

    Hi all,
    I have a requirement to execute multiple dml statements at the same time. I tried to achieve this using dbms_job, but failed.
    I scheduled 3 dbms_job at the same time. Each job has a bulk insert statement, inserting into a single target table. The 3 jobs kicked off, but there were close a minute apart.
    Is there any other way to achieve this?

    You can launch 3 separate SQL Plus sessions, but how do you execute the dml statements at the same exact time?From my desktop machine, here's how I'd do it:
    Create a dos batch file (runall.cmd for example) that looks like this:
    start some_command.cmd
    start some_command.cmd
    start some_command.cmd
    Then just double click on it. This will lauch some_command.cmd in 3 separate sessions. Each will be launched but will not wait to complete before launching the next.
    Inside the batch file, some_command.cmd, you can have whatever you want. But it will probably be sqlplus.exe with some command line options (one of them a .sql script).
    This is how I've used Tom Kite's "DIY Parallelization". But I normally would have a parameter (like a range or something) to keep the DMLs mutually exclusive.

  • Rowid, DML statements

    Hi,
    I have two questions..
    1)I have a table called accounts with a column accountid. I have an index with accountid which is also the primary key.
    Is accessing a record faster with rowid or accountid?
    2)How can I trap DML statements in a PL/SQL block? Even if the particular record is not found, it does not return any error?
    Any help greatly appreciated?
    Thanks,
    Jyoti

    Access through ROWID is the fastest way because the ROWID contains the physical address of the row. The disadvantage is that the ROWID can change without you knowing it. You must not use this method unless you are a 100% sure that the table is really static (even then, an export and import can change the ROWID).
    To trap DML statements in PL/SQL you can use the packages dbms_output or utl_file. Those packages allow you to write to screen or file. For error handling you must use the EXCEPTION clause.
    null

  • Import Statement without ID Specification

    There is an import statement
    IMPORT tab g_acc_tab FROM MEMORY.
    While UCChecking it.. it saying that
    import statement without id specification is only used for the sake of r/2 ......
    Can i Comment it ? If so won't my application  go into dump while running on 6.0cc???

    It has to do with packages. Most java classes are in a package, the name of which must conform to its place on the filesystem relative to the classpath. By that I mean that if you have com.mystuff.One.java, it must be in a folder com/mystuff where com is located somewhere in the classpath.
    What you've done is a little different. I'm assuming a couple of things:
    1. you have no package declaration at the top of one.java or two.java
    2. you have the current directory "." in your classpath.
    Java has the concept of the "default package", which covers classes without a declared package, and in your case is the current directory.
    So when you're in c:\sourcefolder and run the compiler, then "."="c:\sourcefolder", and that directory is part of the default package. No import statements are necessary for classes that are in the same package. This is why two.java can call methods in one.java without an import statement.
    When you run your jsp, the "current directory" part of your classpath is not c:\sourcefolder, but some other value (probably the directory you start your jsp engine from) You will have to import all non-java-library classes because the jsp itself becomes a java class, with a package that is determined by the jsp engine.

  • If we use DML statement in function then that function can be used inside s

    if we use DML statement in function then that function can be used inside select query or any DML query?

    select f from t2;I think you meant to query t1.
    It works if the function is an autonomous transaction:
    create or replace function f return number
    is
    PRAGMA AUTONOMOUS_TRANSACTION;
    begin
        update t1 set c=2;
        commit;
        return 1;
    end;
    select f from t1But as Billy said why would you want to do DML this way. And this is not the way autonomous procedures should be used either.
    An an answer to an interview question though nothing wrong with it.

  • I was using Firefox 4, which had the google toolbar and I accidentally updated to firefox 5, which does not have the toolbar and without the toolbar, I feel handicapped using the browser. Is there any way I can go back to Firefox 4??...Pls urgent...

    I am a medical transcriptionist. I was using Firefox 4 and without knowing that Firefox 5 does not support Google Toolbar I updated it. Searching in google is a integral part of my job and without the Toolbar I feel handicapped using Firefox 5. You can say that there is no need for toolbar in firefox 5 as the address bar doubles as toolbar, but I find it very difficult using it. I uninstalled Firefox 5 and try installing Firefox 4 version, but I am not able to. So, I have uninstalled Firefox 4 completely. So, pls advise if there is a way for me to get back my Firefox 4. Tx in advance for your help.

    -> Uninstalling Firefox on Windows
    * http://kb.mozillazine.org/Uninstalling_Firefox
    -> Starting with the release of Firefox 5, the previous version of Firefox (Firefox 4 in this case) will no longer be maintained with security and stability updates. Firefox 3.6 is the last previous Firefox version that is still being maintained. To downgrade to Firefox 3.6, download and run its installer from:
    * http://www.mozilla.com/en-US/firefox/all-older.html
    '''Warning: Firefox 3.6 will only be maintained with security and stability updates for a short period of time.'''
    -> Installing Firefox on Windows
    * https://support.mozilla.com/en-US/kb/Installing%20Firefox%20on%20Windows
    Check and tell if its working.

  • Will Materialized view log reduces the performance of DML statements on the master table

    Hi all,
    I need to refresh a on demand fast refresh Materialized view in Oracle 11GR2. For this purpose I created a Materialized view log on the table (Non partitioned) in which records will be inserted @ rate of 5000/day as follows.
    CREATE MATERIALIZED VIEW LOG ON NOTES NOLOGGING WITH PRIMARY KEY INCLUDING NEW VALUES;
    This table already has 20L records and adding this Mview log will reduce the DML performance on the table ?
    Please guide me on this.

    Having the base table maintain a materialised view log will have an impact on the speed of DML statements - they are doing extra work, which will take extra time. A more sensible question would be to ask whether it will have a significant impact, to which the answer is almost certainly "no".
    5000 records inserted a day is nothing. Adding a view log to the heap really shouldn't cause any trouble at all - but ultimately only your own testing can establish that.

  • MERGE statement without INSERT clause....is possible...?

    Hi everybody...
    MERGE statement without UPDATE or INSERT clause is possible or not
    I want to select from one table and update in another table. So i dont want insert statement and i want to do it in single query....possible solutions are requested.
    Thanks in advance
    pal

    Hi..
    Thanks for ur reply. For MERGE statement, we have to give UPDATE and INSERT clause. this MERGE statement works without INSERT or UPDATE clause.
    Why i am asking is, I want to select how many rows (count(*)) from table1 and based on this count, i have to update in table2
    Both tables r different and for select and for update where clauses are different. Both tables r totally different.
    I want to do it in single query, so i asked this is possible with MERGE statement without INSERT clause.
    Thanks for ur reply

Maybe you are looking for