Why this error ORA-01747: invalid user.table.column, table.column or colu

Hello

Run immediately is to give different results
SQL>  declare
  2   v varchar2(30):='SAL';
  3   Begin
  4   execute immediate 'update emp set :1=1000 where empno=7900' using v;
  5   end;
  6   /
 declare
*
ERROR at line 1:
ORA-01747: invalid user.table.column, table.column, or column specification
ORA-06512: at line 4
But,
SQL> declare
  2  v varchar2(30):='SAL';
  3  Begin
  4  execute immediate 'update emp set ' ||v||'=1000 where empno=7900';
  5  end;
  6  /
old 7900 new 7900

PL/SQL procedure successfully completed.
Can someone kindly explain to me the reason.

I need to accomplish a task using the first way.

What could be the solution to the above ORA error?

Thank you

Column names cannot be used as a bind variable.
If you do not need to do this using method 1 as method 1 does not work by design.
On the other hand, you need replace the literal (7500,7900) with a variable binding.

--------
Sybrand Bakker
Senior Oracle DBA

Tags: Database

Similar Questions

  • ORA-01747: invalid user.table.column... on the REPLACEMENT notice

    Oracle 11g Release 2

    I run an UPDATE statement. In the 'set' I am trying to update a column by using a subquery on the right side. REPLACE the statement Gets the error ORA-01747: specification of invalid column, table.column, or user.table.column.

    create table tab1
    ( file_id   number  ,
      record_id number  ,
      part_type_id number ,
      part_number  number ,
      positon_id   number ,
      notes        varchar2(255) ,
      mapped       varchar2(1) default 'N'
    )
    /
    insert into tab1 values(1,1,123,777,1,'NEW|A/C COMPRESSOR KIT','N') ;
    insert into tab1 values(1,2,123,777,2,'REMAN|A/C LINE','N') ;
    insert into tab1 values(1,3,123,777,2,'TEST NOTE','N') ;
    commit;
    select * from tab1;
    /*
      FILE_ID  RECORD_ID PART_TYPE_ID PART_NUMBER POSITON_ID NOTES                     MAPPED
    --------- ---------- ------------ ----------- ---------- ------------------------- ------
            1          1          123         777          1 NEW|A/C COMPRESSOR KIT         N
            1          2          123         777          2 REMAN|A/C LINE                 N
            1          3          123         777          1 TEST NOTE                      N
    */
    
    
    DECLARE
       v_note2 varchar2(255) := 'NEW' ;
    BEGIN
    UPDATE tab1 t 
             SET 
              , t.notes =  (select REPLACE(t.notes,v_note2,null) 
                            from dual )
          WHERE t.file_id = 1         -- value comes from another source
          AND   t.part_type_id = 123  -- value comes from another source
          AND   t.part_number = 777   -- value comes from another source
          AND   t.position_id = 1  ;  -- value comes from another source
    END ;
    /
    
    ERROR at line 3:
    ORA-01747: invalid user.table.column, table.column, or column specification
    

    Here's what the end result should be:

      FILE_ID  RECORD_ID PART_TYPE_ID PART_NUMBER POSITON_ID NOTES                     MAPPED
    --------- ---------- ------------ ----------- ---------- ------------------------- ------
            1          1          123         777          1 |A/C COMPRESSOR KIT            N
            1          2          123         777          2 REMAN|A/C LINE                 N
            1          3          123         777          1 TEST NOTE                      N
    

    Hello

    orclrunner wrote:

    Oracle 11g Release 2

    I run an UPDATE statement. In the 'set' I am trying to update a column by using a subquery on the right side. REPLACE the statement Gets the error ORA-01747: specification of invalid column, table.column, or user.table.column.

    1. create table tab1
    2. (file_id number,
    3. number of record_id,
    4. number of part_type_id
    5. number of PART_NUMBER,
    6. number of positon_id
    7. Notes VARCHAR2 (255),
    8. mapped by default varchar2 (1) ' don't
    9. )
    10. /
    11. insert into tab1 values (1,1,123,777,1,'NEW |) Kit COMPRESSOR / it, ' don't);
    12. insert into tab1 values (1,2,123,777,2,'REMAN |) A/C LINE ',' don't);
    13. insert into tab1 values (1,3,123,777,2, 'NOTE of TEST', ' don't);
    14. commit;
    15. Select * from tab1;
    16. /*
    17. FILE_ID RECORD_ID PART_TYPE_ID PART_NUMBER POSITON_ID MAPPED NOTES
    18. --------- ---------- ------------ ----------- ---------- ------------------------- ------
    19. 1 1 123 777 1 NEW | A/C COMPRESSOR KIT N
    20. 1 2 123 777 2 REMAN | A/C LINE N
    21. 1 3 123 777 1 TEST NOTES N
    22. */
    23. DECLARE
    24. VARCHAR2 (255) v_note2: = "NEW";
    25. BEGIN
    26. Tab1 t UPDATE
    27. SET
    28. t.notes = (select REPLACE(t.notes,v_note2,null)
    29. the double)
    30. WHERE t.file_id = 1 - value comes from another source
    31. AND t.part_type_id = 123 - value comes from another source
    32. AND t.part_number = 777 - value comes from another source
    33. AND t.position_id = 1;  -value comes from another source
    34. END;
    35. /
    36. ERROR at line 3:
    37. ORA-01747: invalid column, table.column, or user.table.column specification

    Here's what the end result should be:

    1. FILE_ID RECORD_ID PART_TYPE_ID PART_NUMBER POSITON_ID MAPPED NOTES
    2. --------- ---------- ------------ ----------- ---------- ------------------------- ------
    3. 1          1          123         777          1 | A/C COMPRESSOR KIT N
    4. 1 2 123 777 2 REMAN | A/C LINE N
    5. 1 3 123 777 1 TEST NOTES N

    The comma after SET is a syntax error.

    Why you use double?  Why not just

    UPDATE tab1

    SET of notes = REPLACE (notes, v_note2)

    WHERE file_id = 1

    ...

    ?

  • Why this error ORA-00904: invalid identifier

    Hi all
    Please advice me what is wronge with this
    ORA-00904: "NONE": invalid identifier


    create or replace trigger test_table2
    before inserting
    on Ta
    for each line
    declare
    v2_none_con varchar2 (20);
    v2_none_con2 varchar2 (20);
    I have number (10);
    TYPE v2_EmpCurTyp IS REF CURSOR;
    v2_emp_cursor v2_EmpCurTyp;
    v2_stmt_str VARCHAR2 (200);
    RECORD IS of TYPE v2_employee_type (v_rowid varchar (100));
    v2_emp_content v2_employee_type;
    Start

    v2_none_con2: = 'NONE ';

    v2_stmt_str: = 'select rowid from t1 where name =' v2_none_con2;
    I: = 0;
    V2_emp_cursor OPEN FOR v2_stmt_str;
    LOOP FETCH v2_emp_cursor INTO v2_emp_content;
    EXIT WHEN v2_emp_cursor % NOTFOUND;
    dbms_output.put_line (v2_emp_content.v_rowid);
    i: = i + 1;
    v2_none_con: = 'NO ' | TO_CHAR (i);

    END LOOP;
    end;




    SQL > /.
    Insert in your values (10, 'W')
    *
    ERROR on line 1:
    ORA-00904: "NONE": invalid identifier
    ORA-06512: in the 'END. TEST_TABLE2', line 15
    ORA-04088: error during execution of trigger ' FINAL. TEST_TABLE2'


    SQL >

    First of all:

    v2_stmt_str: = 'select rowid from t1 where name =' v2_none_con2;

    I would give you compilation errors. I guess the real code is:

    v2_stmt_str: = 'select rowid from t1 where name =' | v2_none_con2;

    Now that the text of the statement would be? V2_none_con2 is 'NONE', dynamic SQL would be:

    Select rowid from t1 where name = NONE

    It is obvious, it will trigger ORA-00904 (except a column named NONE t1). What you want is:

    Select rowid from t1 where name ='' NONE

    So change:

    v2_stmt_str: = 'select rowid from t1 where name =' | v2_none_con2;

    TO

    v2_stmt_str: = ' select rowid from t1, whose name =="' | v2_none_con2 | '''';

    SY.

  • Error in ODI, ORA-01747: invalid column, table.column, or user.table.column specification

    ODI-1227: SrcSet0 (load) task fails on the source of ORACLE STAGING_YYY connection.

    Caused by: java.sql.SQLSyntaxErrorException: ORA-01747: invalid column, table.column, or user.table.column specification

    We get the above error whenever we run an ODI interface,
    This interface is straight forrwad a mapping update incremental IKM Oracle, although we have identified the problem but do not know how it could be fixed

    Source table that contains two columns that are generally identified as the key of DB

    NAME

    / / DESC

    the target too has the same columns. If we disable these mappings to columns from the Active maps the interface works very well, however, with the latter, it fails. We will not be able to change the name of the column in the target because it is a table of Oracle products and has several dependencies to the breast.

    Please suggest an alternative and also if our understanding is correct.

    Thanks in advance.

    Jay

    HI Jay

    change the column as DESC and put "DESC" in the name, and save it for all the source concerned target and remapping to remove the column from the interface

    Thank you

    P

  • Error Type 2 SCD: ODI - 1228:ORA - 01747: invalid column, table.column, or user.table.column specification

    ODI error. When you try to import.

    Error Type 2 SCD: ODI - 1228:ORA - 01747: invalid column, table.column, or user.table.column specification

    It is a common question.

    Allow your SCD SCD table column properties if you do not select "crush on change."
    This property simply

    -Online CPC IKM goto => select ignore option error on update of existing lines.

  • Select list LOV (error ORA-01722: invalid number)

    Hello
    I use this procedure to insert data into a table through a submit after processes.
    CREATE OR REPLACE
    PROCEDURE PR_INS_TMP_STUDENTS(
    v_tmp_stu_id_in     IN      NUMBER
    )
    IS
    BEGIN
    
    
      INSERT INTO TMP_STUDENTS (
          stu_id,
          stu_name_last,
             stu_name_first,
             stu_name_middle,
             stu_name_suffix,
             stu_name_prefer_last,
          stu_name_prefer_first,
          sch_id
          )
      VALUES (
          v_tmp_stu_id_out,
          V('p50100_stu_name_last'),
          V('p50100_stu_name_first'),
          V('p50100_stu_name_middle'),
          V('p50100_stu_name_suffix'),
          V('p50100_stu_name_prefer_last'),
          V('p50100_stu_name_prefer_first'),
          V('p50100_sch_id')
          );
    
    END;
    I kept getting this error during the presentation of the page.
    ORA-01722: invalid number
    Error      Insert Failed! 
    I go back to sch_id which is a list of number type selection (3.0). The LOV selection list has the following attributes:
    Display extra value: No
    Dynamic Translation: No
    Number of Columns: 1
    Display Null: Yes
    Null Display Value: blank
    Null Return Value: blank
    Here's the code for the LOV:
    SELECT distinct(site_id || ' - ' || initcap(lower(site_name))) site_desc, site_id ret_val
    FROM sa.SITE_DEMOGRAPHICS@sis
    order by 2
    I don't know why I kept ORA-01722: invalid number during the presentation of the page. Everyone ran through this issue?

    Hello

    First of all, you should also use nv ('itemname') for numeric values-, make sure you use v() instead of V() for others.

    If the p50100_sch_id can be null, the return value will be "null %" - which could be the cause of the error.

    In such cases, I tend to do something like -1 of the value zero, then do a test for that, in the code - if the value is - 1, I replace NULL

    Andy

  • Error: ORA-01722: invalid number

    Hello

    Can some please tell me what I'm doing wrong when I try to make a difference?

    Since the format is the same I use this query

    Select b1 - b2 of TMP_1;
    Error: ORA-01722: invalid number
    --create table         
        CREATE TABLE TMP_1
    (
      B1  VARCHAR2(8 BYTE),
      B2  VARCHAR2(8 BYTE)
    ) 
    /
    
    --insert 
    
    INSERT INTO TMP_1 (B1, B2)
         VALUES ('00:02:54', '00:02:10');
    
    INSERT INTO TMP_1 (B1, B2)
         VALUES ('00:05:47', '00:03:56');
    
    INSERT INTO TMP_1 (B1, B2)
         VALUES ('00:12:49', '00:02:37');
    
    INSERT INTO TMP_1 (B1, B2)
         VALUES ('00:49:33', '00:02:09');
    
    INSERT INTO TMP_1 (B1, B2)
         VALUES ('00:06:34', '00:02:39');
    
    INSERT INTO TMP_1 (B1, B2)
         VALUES ('00:02:45', '00:01:41');
    
    INSERT INTO TMP_1 (B1, B2)
         VALUES ('00:01:22', '00:00:22');
    
    COMMIT;
    objective:

    Need to get the difference in the same format as the
     columns example: 00:02:54 

    Please provide examples of data, it is very useful. Here's one way:

    SQL> select b1, b2,
      2         b1 - (to_date(to_char(sysdate, 'dd-mon-yyyy')||' '||b2,'dd-mon-yyyy hh24:mi:ss') - trunc(sysdate)) b3
      3  from tmp_1;
    
    B1                   B2       B3
    -------------------- -------- --------------------
    03-dec-2012 20:13:33 00:02:10 03-dec-2012 20:11:23
    03-dec-2012 18:24:24 00:03:56 03-dec-2012 18:20:28
    03-dec-2012 21:48:33 00:02:37 03-dec-2012 21:45:56
    03-dec-2012 15:50:09 00:02:09 03-dec-2012 15:48:00
    03-dec-2012 14:06:24 00:02:39 03-dec-2012 14:03:45
    03-dec-2012 21:47:15 00:01:41 03-dec-2012 21:45:34
    

    John

  • ORA-20001: INVALID USER: ACCESS DENIED! -TIVOLI

    version 10.2.0.2

    SQL > connect tivoli
    Enter the password:
    ERROR:
    ORA-00604: an error has occurred at the SQL level 1 recursive
    ORA-20001: INVALID USER: ACCESS DENIED! -TIVOLI
    ORA-06512: at line 77 level

    Published by: DBA2008 on February 12, 2010 11:59

    Select the owner, trigger_name from dba_triggers where triggering_event = 'LOGIN ';

  • Error: ORA-29283: invalid file so that registerdatabase operation

    We get the error during the registration of the agent to the server
    AGENT_HOME/bin/schagent - registerdatabase port > < host > <
    Error:
    Oracle Scheduler Agent registration
    The agent registration failed!
    Error: ORA-29283: invalid file operation
    ORA-06512: at "SYS." UTL_FILE", line 536
    ORA-29283: invalid file operation

    Database version: 11.1.0.7.0

    Someone at - he seen these errors?

    Published by: Gaham on August 10, 2009 12:03 AM

    Published by: Gaham on August 10, 2009 12:04 AM

    Hello

    This can happen if you have recently changed ORACLE_HOME for the database. We're currently tracking this as a bug.

    To work around this problem, you can do

    delete the PLANNER directory $ _WALLET_DIR;

    -replace ORACLE_HOME with the full path to your new oracle home
    - and use-instead of / for Windows
    Create directory PLANNER$ _WALLET_DIR as "ORACLE_HOME/Planner/portfolio";

    Hope this helps,
    Ravi.

  • whenever I select any folder or any icon in my computer win 7 I get a popup to remove this icon why this error comes how can I solve this problem pls help me

    whenever I select any folder or any icon in my computer win 7 I get a popup to remove this icon why this error comes how can I solve this problem pls help me

    Hello

    1. don't you make changes to the computer until the problem occurred?

    2. What is the exact error message do you get?

    I suggest you try the steps mentioned below and check if it helps.

    Method 1: Start your system in safe mode and check if the same problem occurs.

    http://Windows.Microsoft.com/en-us/Windows-Vista/start-your-computer-in-safe-mode

     

    Method 2 If the issue does not exist in Mode safe mode then try to put your computer in a clean boot state.

    By setting your boot system minimum state helps determine if third-party applications or startup items are causing the problem.

     

    How to troubleshoot a problem by performing a clean boot in Windows Vista or Windows 7:
    http://support.Microsoft.com/kb/929135

    Note: After the boot minimum troubleshooting step, follow step 7 in the link provided to return the computer to a Normal startup mode.

    Follow these steps to reset the computer to start as usual:

    (a) click on start toreduce this top that i, type msconfig.exe in the Start Search box and press ENTER.

    If you are prompted for an administrator password or for confirmation, type your password, or click continue.

    (b) under the general tab, click the Normal startup option, and then click OK.

    (c) when you are prompted to restart the computer, click restart.

    Method 3:

    Also scan your computer from the Microsoft Security Scanner, which would help us to get rid of viruses, spyware and other malicious software.

    The Microsoft Security Scanner is a downloadable security tool for free which allows analysis at the application and helps remove viruses, spyware and other malware. It works with your current antivirus software.

    http://www.Microsoft.com/security/scanner/en-us/default.aspx

    Note: The Microsoft Safety Scanner ends 10 days after being downloaded. To restart a scan with the latest definitions of anti-malware, download and run the Microsoft Safety Scanner again.

    Hope this information is useful.

  • SQL error: ORA-01779: cannot modify a column that matches a key examine

    Hi all

    The requirement is that I have two tables s_party_d and S_CONTACT_d. the need to update the column name with FST_NAME | ',' | Last_name when column rowid in both tables are equal. I used the query previously below: -.

    Update
    (select
    E1. Name,
    e.FST_NAME,
    Select
    Of
    s_party_d e1,
    E S_CONTACT_d
    where
    E1. Game of ROW_ID = e.ROW_ID)
    name = FST_NAME | ',' | LAST_NAME;

    But I get the error message when executing the query

    Error in the command line: 31 column: 3
    Error report:
    SQL error: ORA-01779: cannot modify a column that is mapped to a table not preserved key
    01779 00000 - 'impossible to change a column that is mapped to a non-preserved table at key'
    * Cause: An attempt was made to insert or update columns in a join finds out who
    map to a table not kept the key.
    * Action: Change the directly underlying base tables.

    Can U please tell me why this error and how to solve?

    Thank you
    Mathon

    Mathon wrote:

    So, I have to look into some other method... I can't achieve this using a single update statement...

    Well, no matter what you do you need to decide what FST_NAME | ',' | Name to use. As I already pointed out for each line of the line of the s_party_d table there are several rows in table S_CONTACT_d. Again, you must yo decide what S_CONTACT_d table row you want to use. For example:

    update s_party_d e1
       set e1.name = (
                      select  max(e.FST_NAME) ||', '|| max(e.LAST_NAME)
                        from  S_CONTACT_d e
                        where e1.ROW_ID=e.ROW_ID
                     )
     where e1.ROW_ID in (
                         select  e.ROW_ID
                           from  S_CONTACT_d e
                        )
    /
    

    SY.

  • Why im getting this error: "ORA-22813: value of the operand exceeds the limits of the system.

    HI EXPERTS...

    Please helpme to fix this...

    I have a database of oracle 11g, runnint on a Windows Server 2008:

    Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production

    I have two tables:

    CREATE TABLE UTILS. SEG_ROLES

    (

    VARCHAR2 (12-BYTE) APPLICATION,

    ROL VARCHAR2 (12-BYTE),

    USERS VARCHAR2 (255 BYTE)

    )

    TOGETHER TO DEFINE

    Insert into SEG_ROLES (APPLICATION, ROL, USERS) Values ('MULTIPLAN', 'ADMIN', 'ADMIN');

    Insert into SEG_ROLES (APPLICATION, ROL, USERS) Values ("MULTICLIP", 'CAR01', 'PATY');

    Insert into SEG_ROLES (APPLICATION, ROL, USERS) Values ("MULTICLIP", "CAR02", "FABIOLA, ERIKA");

    Insert into SEG_ROLES (APPLICATION, ROL, USERS) Values ("MULTICLIP", "CON01', 'LUCY, PATY');

    Insert into SEG_ROLES (APPLICATION, ROL, USERS) Values ("MULTICLIP", 'CON02', 'VALERIA');

    COMMIT;

    CREATE TABLE UTILS. SEG_ACCESOS

    (

    VARCHAR2 (12-BYTE) APPLICATION,

    ADMROL VARCHAR2 (12-BYTE),

    VARCHAR2 (20 BYTE) MENU,

    OPCION VARCHAR2 (20 BYTE),

    TYPE VARCHAR2 (5 BYTE),

    OBJETO_MENU VARCHAR2 (40 BYTE),

    ACCESO VARCHAR2 (2 BYTE),

    ROLES_ACCESOS VARCHAR2 (255 BYTE)

    )

    TOGETHER TO DEFINE

    Insert into SEG_ACCESOS (APPLICATION, ADMROL, MENU, OPTION, TIPO, OBJETO_MENU, ACCESO, ROLES_ACCESOS)

    Values ("MULTICLIP", "ADMIN", "ROOMMA", NULL, am', 'm_coloca', the of ', 'CAR01, CAR02');

    Insert into SEG_ACCESOS (APPLICATION, ADMROL, MENU, OPTION, TIPO, OBJETO_MENU, ACCESO, ROLES_ACCESOS)

    Values ("MULTICLIP", "ADMIN", "PUT", "PREVALIDA", "SM", "sm_prevalida", the from ', 'CAR01, CAR02');

    Insert into SEG_ACCESOS (APPLICATION, ADMROL, MENU, OPTION, TIPO, OBJETO_MENU, ACCESO, ROLES_ACCESOS)

    Values ("MULTICLIP", "ADMIN", "PUT", "PRECOLOCA", "SM", "sm_preColocacion", the from ', 'CAR01, CAR02');

    Insert into SEG_ACCESOS (APPLICATION, ADMROL, MENU, OPTION, TIPO, OBJETO_MENU, ACCESO, ROLES_ACCESOS)

    Values ("MULTICLIP", 'ADMIN', 'LOVE', "COLOCACIÓN", "SM", "sm_colocacion", the from ', "CAR01");

    Insert into SEG_ACCESOS (APPLICATION, ADMROL, MENU, OPTION, TIPO, OBJETO_MENU, ACCESO, ROLES_ACCESOS)

    Values ("MULTICLIP", "ADMIN", "PUT", "REGCOLOCA", "SM", "sm_regcoloca", the from ', "CAR01");

    Insert into SEG_ACCESOS (APPLICATION, ADMROL, MENU, OPTION, TIPO, OBJETO_MENU, ACCESO, ROLES_ACCESOS)

    Values ("MULTICLIP", "ADMIN", "LDP", NULL, am', 'm_PLD', the of ', "CAR01, CAR02, CON01 CON02");

    Insert into SEG_ACCESOS (APPLICATION, ADMROL, MENU, OPTION, TIPO, OBJETO_MENU, ACCESO, ROLES_ACCESOS)

    Values ("MULTICLIP", "ADMIN", "LDP", "LN_CONSULTA", "SM", "sm_PLD_LNConsulta", the from ', 'CAR01, CAR02');

    Insert into SEG_ACCESOS (APPLICATION, ADMROL, MENU, OPTION, TIPO, OBJETO_MENU, ACCESO, ROLES_ACCESOS)

    Values ("MULTICLIP", "ADMIN", "LDP", "LN_BARRIDOMASIVO", "SM", "sm_PLD_LNBarridoMasivo", the from ', "CAR01");

    Insert into SEG_ACCESOS (APPLICATION, ADMROL, MENU, OPTION, TIPO, OBJETO_MENU, ACCESO, ROLES_ACCESOS)

    Values ("MULTICLIP", "ADMIN", "LDP", "REP_INICICLO", "SM", "sm_PLD_ReporIniciclo", the from ', 'CON01, CON02');

    Insert into SEG_ACCESOS (APPLICATION, ADMROL, MENU, OPTION, TIPO, OBJETO_MENU, ACCESO, ROLES_ACCESOS)

    Values ("MULTICLIP", "ADMIN", "LDP", "LN_BITACORA", "SM", "sm_PLD_LNBitacora", the from ', "CON01");

    COMMIT;

    - And this point of view:


    CREATE VIEW UTILS. VW_ROL_USER AS

    Select distinct APPLICATION, ROL, trim (column_value) USUARIO

    from (SELECT APPLICATION, ROL, USERS USER

    FROM UTILS. SEG_ROLES

    WHERE IT IS NOT NULL TO USERS

    ORDER BY APPLICATION, ROL

    ) t,.

    XMLTable ((' «' ||)) Replace (USER, ",", "",""). '"'))

    order by APPLICATION, ROL, trim (column_value)

    CREATE VIEW UTILS. VW_ACC_ROL AS

    Select distinct APPLICATION, ADMROL, MENU, OPTION, TIPO, OBJETO_MENU, ACCESO, trim (column_value) ROL

    (SELECT APPLICATION, ADMROL, MENU, OPTION, TIPO, OBJETO_MENU, ACCESO, ROLES_ACCESOS ROL

    FROM UTILS. SEG_ACCESOS

    WHERE ROLES_ACCESOS IS NOT NULL

    ORDER BY APPLICATION, ADMROL, MENU, OPTION

    ) t,.

    XMLTable ((' «' ||)) Replace (ROL, ",", "",""). '"'))

    MENU, TYPE, OPTION, APPLICATION control, trim (column_value)

    CREATE VIEW UTILS. VW_SEG_ACCESOS AS

    SELECT VACR. APPLICATION, VACR. MENU, VACR. TIPO, VACR. OPCION, VACR. OBJETO_MENU, VACR. ACCESO, VACR. ROL, VUSR. USUARIO

    FROM UTILS. VW_ACC_ROL VACR,

    UTILS. VW_ROL_USER VUSR

    WHERE VACR. ROL = VUSR. ROL

    ORDER OF VACR. APPLICATION, VACR. ROL, VACR. MENU, VUSR. USUARIO, VACR. TIPO, VACR. OPCION

    When I ask the last posting, it works fine:

    SELECT VSEG.* IN UTILS. VW_SEG_ACCESOS VSEG

    But when I add conditions:

    SELECT VSEG.* IN UTILS. VW_SEG_ACCESOS VSEG

    WHERE VSEG. APPLICATION = "MULTIPLAN.

    AND VSEG. USER = 'PATY '.

    It generates this error:

    ORA-22813: value of the operand is greater than the limits of the system

    Cause: The value of the object or the Collection was too big. The size of the value might have exceeded 30 k in a context of TYPE, or size may be too large for the available memory.

    Action: Choose a different value, and try the operation again.

    Why?

    Thanks in advance...

    Finally found a SOLUTION at: http://stackoverflow.com/questions/14328621/oracle-10g-splitting-string-into-multiple-rows

    just change the way we create the view using the regexp_substr.

    CREATE VIEW UTILS. VW_ROL_USER AS

    SELECT distinct trim APPLICATION, ROL, (regexp_substr (USERS, ' [^,] +', 1, level)) USER

    FROM UTILS. SEG_ROLES t

    WHERE IT IS NOT NULL TO USERS

    CONNECTION BY instr (USERS, ',', 1, level - 1) > 0

    order by APPLICATION, ROL

    Thank you all

  • Reconciliation error: ORA-00903: invalid table name

    I am facing this error below:

    SELECT * FROM WHERE ORC_KEY =? AND UD_RES_P_KEY =? : java.sql.SQLSyntaxErrorException: ORA-00903: invalid table name

    What is a product of IOM 9.1.0.2 problem?

    Best regards
    Robert

    No, it isn't a matter of product. Please go to the tab of process definition and
    define any attribute with multiple values as a key field in mapping definition of the reconciliation process.

    Let me know the result, if you please.

    hope this helps,
    Thiago Guimarães L

  • my user is confronted with this error ORA-3135 AND ORA-3114

    Hi friends,

    One of my users get the error ORA-3135 and ORA-3114 for gigantic through data loading.
    But it can charge less amount of data successfully.

    Huge data download takes more than one and half hour.

    I asked the user to add EXPIRE_TIME = 10 in his machine sqlnet.ora file. Then too, it is the problem.

    Please someone help to solve this problem. Thanks in advance

    I assume that your assumption is that CR is responsible for the error?

    This could be the case, but if it is then by setting the SQLNET. EXPIRE_TIME on the client won't have any effect, it must be defined on the database server.

  • HELP-immediate execution in PL/SQL has received the error ORA-00904: invalid identifier

    What is the problem with the following codes from PL/SQL (actually it comes to Oracle Metalink Note: 313175.1):
    ===========
    declare
    cursor c1 is select * from $ semantic;
    v_statement VARCHAR2 (255);
    v_nc number (10);
    v_nt number (10);
    Start
    immediate execution
    "select count (*) from $ semantics" in v_nc;
    immediate execution
    ' select count (distinct s_table_name) of semantics$ "in v_nt;
    dbms_output.put_line
    ('Edit' | v_nc |) 'columns ' | v_nt | "tables");
    to r1 c1 loop
    v_statement: = 'ALTER TABLE ' | R1.s_owner | '.' || R1.s_table_name;
    v_statement: = v_statement | «change (' |)» R1.s_column_name | ' ';
    v_statement: = v_statement | R1.s_data_type | ' (' | r1.s_char_length;)
    v_statement: = v_statement | ' CHAR))';
    immediately run v_statement;
    end loop;
    dbms_output.put_line ('Done');
    end;
    /
    =====
    Executed once the codes as sysdba against 10gr 2 database, I got this error:
    From build to select columns to change
    Editing columns 4428 35249
    declare
    *
    ERROR on line 1:
    ORA-00904: invalid identifier
    ORA-06512: at line 22

    I see nothing wrong with the line of "immediate execution". I appreciate your help!

    Thank you.

    Hello
    Try to print the offending instruction using exception, I used small test cases by changing the pl/sql block, you may need to change to respond to all other types of data in this table.

    CREATE TABLE semantics$
    AS
       SELECT USER AS owner,
              table_name,
              data_type AS s_data_type,
              column_name,
              data_length AS s_char_length
       FROM cols
       WHERE table_name = 'MY_OBJECTS';
    
    DECLARE
       CURSOR c1
       IS
          SELECT *
          FROM semantics$;
    
       v_statement   VARCHAR2 (255);
       v_nc          NUMBER (10);
       v_nt          NUMBER (10);
    BEGIN
       EXECUTE IMMEDIATE 'select count(*) from semantics$' INTO v_nc;
    
       EXECUTE IMMEDIATE 'select count(distinct table_name) from semantics$'
          INTO v_nt;
    
       DBMS_OUTPUT.put_line(   'ALTERing '
                            || v_nc
                            || ' columns in '
                            || v_nt
                            || ' tables');
    
       FOR r1 IN c1
       LOOP
          v_statement   := 'ALTER TABLE ' || r1.owner || '.' || r1.table_name;
          v_statement   := v_statement || ' modify (' || r1.column_name || ' ';
          v_statement   :=
             v_statement || r1.s_data_type || '(' || r1.s_char_length;
    
          IF (r1.s_data_type = 'NUMBER')
          THEN
             v_statement   := v_statement || '))';
          ELSE
             v_statement   := v_statement || ' CHAR))';
          END IF;
    
          DBMS_OUTPUT.put_line (v_statement);
    
          -- EXECUTE IMMEDIATE v_statement;
       END LOOP;
    
       DBMS_OUTPUT.put_line ('Done');
    EXCEPTION
       WHEN OTHERS
       THEN
          DBMS_OUTPUT.put_line ('Statement = ' || v_statement);
          DBMS_OUTPUT.put_line (SUBSTR (SQLERRM, 1, 200));
          RAISE;
    END;
    

    _ Output

    ALTERing 13 columns in 1 tables
    ALTER TABLE MY_OBJECTS modify (OWNER VARCHAR2(30 CHAR))
    ALTER TABLE MY_OBJECTS modify (OBJECT_NAME VARCHAR2(30 CHAR))
    ALTER TABLE MY_OBJECTS modify (SUBOBJECT_NAME VARCHAR2(30 CHAR))
    ALTER TABLE MY_OBJECTS modify (OBJECT_ID NUMBER(22))
    ALTER TABLE MY_OBJECTS modify (DATA_OBJECT_ID NUMBER(22))
    ALTER TABLE MY_OBJECTS modify (OBJECT_TYPE VARCHAR2(19 CHAR))
    ALTER TABLE MY_OBJECTS modify (CREATED DATE(7 CHAR))
    ALTER TABLE MY_OBJECTS modify (LAST_DDL_TIME DATE(7 CHAR))
    ALTER TABLE MY_OBJECTS modify (TIMESTAMP VARCHAR2(19 CHAR))
    ALTER TABLE MY_OBJECTS modify (STATUS VARCHAR2(7 CHAR))
    ALTER TABLE MY_OBJECTS modify (TEMPORARY VARCHAR2(1 CHAR))
    ALTER TABLE MY_OBJECTS modify (GENERATED VARCHAR2(1 CHAR))
    ALTER TABLE MY_OBJECTS modify (SECONDARY VARCHAR2(1 CHAR))
    Done
    

    Concerning

    Published by: OrionNet on January 5, 2009 23:53

    Published by: OrionNet on January 5, 2009 23:55

Maybe you are looking for