ORA-28113: political predicate a error IN APEX

My dear, I am trying to impliment of VPD based with Apex security

The function that I used is

create or replace
FUNCTION CC_SEC)
p_schema IN VARCHAR2 DEFAULT NULL,
p_object IN VARCHAR2 DEFAULT NULL)
RETURN VARCHAR2
AS
Start
-RETURN 'upper (userid) = nvl (v ("APP_USER"), USER)';
RETURN "(upper (userid) = decode (nvl (v ("APP_USER"), USER),'|" "))" ADMIN "' |', sole (userid), nvl (v ("APP_USER"), USER)';
END;

and the policy to add as below

BEGIN
DBMS_RLS.add_policy
(object_schema = > 'TMAPP',)
object_name = > "USER_DST"
POLICY_NAME = > "DATA_SEL_POL"
function_schema = > 'TMAPP ',.
policy_function = > 'CC_SEC');
END;


here in the cc_sec function, I am tryin to use the option of decoding. For use with decode them (the line is commented out above), it will work without any problem. But after decoding, I get the error ORA-28113: political predicate has the error of connection of the apex.

Help, please

Dennis

Hey, Dennis,.

DJ wrote:
My dear, I am trying to impliment of VPD based with Apex security

The problem has something to do with the Apex?

The function that I used is...
RETURN "(upper (userid) = decode (nvl (v ("APP_USER"), USER),'|" "))" ADMIN "' |', sole (userid), nvl (v ("APP_USER"), USER)';

The immediate problem is unbalanced parentheses. "You left 8 ' (of, but only 6 right ' ') ''s.

Test the predciate before trying to create a strategy.
If the user name cannot be NULL, then what you do can be sinmplifed like this:

WHERE       NVL ( v ('APP_USER')
           , USER
           )          IN ( 'ADMIN'
                    , UPPER (userid)
                     )

When you have this being debugged in a regular query, and you're ready to create the strategy of the CAE, use the notation Q for the string literal:

RETURN Q'{NVL ( v ('APP_USER')
           , USER
           )          IN ( 'ADMIN'
                    , UPPER (userid)
                     )
         }'

Tags: Database

Similar Questions

  • Process apex Pl/SQL error: ORA-06502: PL/SQL: digital error or value: specified incorrect LOB Locator

    Apex 4.2

    I searched through the forums of the research about this error, but I do not understand what to do from here. I am writing a process that sends an e-mail when a value of the claim is made (or on a button click). Procedure is as follows:

    DECLARE
       l_body        clob;
       l_body_html   clob;
       l_subject    varchar2(100);
    
    BEGIN
      
    l_body := empty_clob();
    l_body_html := empty_clob();
    
    
    IF V('REQUEST') in ('SAVE_ME') AND :P32_PARENT_UPDATED_FL IS NOT NULL THEN
       l_subject :=  'Survey Job Request Updated'||utl_tcp.crlf||utl_tcp.crlf;
       l_body := 'Update'||utl_tcp.crlf;
    
       l_body_html := '<html>
          <head>
             <style type = "text/css">
                 /* Can add style attributes later */
             </style>
          </head>
          <body>'||utl_tcp.crlf;
       l_body_html := l_body_html ||'Survey Job Request has been updated.<br /><br />'||utl_tcp.crlf;
       l_body_html := l_body_html ||'Title: '||utl_tcp.crlf;
       l_body_html := l_body_html ||:P32_TITLE||utl_tcp.crlf;
       l_body_html := l_body_html ||'<br />Request Category : '||utl_tcp.crlf;
       l_body_html := l_body_html ||:P32_REQUEST_CATEGORY||utl_tcp.crlf;
       l_body_html := l_body_html ||'<br />Update Date: '||utl_tcp.crlf;
       l_body_html := l_body_html ||:P32_UPDATE_DATE||utl_tcp.crlf;
       l_body_html := l_body_html ||'<br />Updated By: '||utl_tcp.crlf;
       l_body_html := l_body_html ||:P32_LAST_EDITED_BY_USERID||utl_tcp.crlf;
       l_body_html := l_body_html ||'</body></html>';
    
    
    
    
    
    END IF;
    
    :P32_CANCELLATION_REASON := l_body_html;
    
    apex_mail.send(
       p_to             =>  '[email protected]',
       p_from           =>  '[email protected]',
       p_body           =>  l_body_html,
       p_body_html      =>  l_body_html,
       p_subj           =>  l_subject);
    
    END;
    
    
    
    
    
    
    
    
    
    

    I added two lines to the code (lines 08 and 09) and when I run my program, I now get the error:

    • ORA-21560: 3 argument is null, invalid or out of range

    Without these two lines, I received the error:

    ORA-06502: PL/SQL: digital error or value: specified incorrect LOB Locator

    I'm not quite sure what is wrong or what I can change. There seems to be right, and in fact, it worked before. I have no idea why this error keeps popping up. Any help on that would be great. Thanks in advance.

    Hello

    NewApexCoder wrote:

    Hmmm... good point. I think that apex_mail.send must be called inside the IF block. But in the future, I added several conditional statements, won't I need to include the apex_mail.send function in each IF block? But at the same time, there is the case that if no conditional instructions are met? Tests, when none of the conditions are true (when I had a second IF block in the code), an email would not be defined, which is correct. Could that be causing a problem however. If the IF block is not filled could he always try to send an email about anything or the l_body_html and l_subject fields have in them the garbage that causing ORA error?

    If the call to the procedure of sending (it is a procedure, and not a function) many times is necessary or useful depends on exactly what you're trying to do.

    For example, you can write to Santa for

    • Submit a wish list
    • Change of address
    • Contradiction with your boss, who can you tell Santa you were mean

    or any combination of these grounds.  If you want to send a simple email whenever any of the conditions are met (and not send a when none are met), then you could do something like this:

    DECLARE

    need_to_send BOOLEAN: = FALSE;

    ...

    BEGIN

    ...

    IF wish_list IS NOT NULL

    THEN

    l_body: = l_body | ...

    need_to_send: = TRUE;

    END IF;

    IF old_addresss <> new_address

    THEN

    l_body: = l_body | ...

    need_to_send: = TRUE;

    END IF;

    IF boss_is_a_big_fat_liar

    THEN

    l_body: = l_body | ...

    need_to_send: = TRUE;

    END IF;

    IF need_to_send

    SO - It's the only call to send

    apex_mail. Send...

    In any case, the error message ' ORA-21560: argument 3 sucks...» "is pretty clear: If you have not given a value to everything you're passing as p_body, then you'd better call the procedure.

  • ORA-01722: invalid number calculation error during the treatment.

    My version of the APEX is Application Express 4.2.6.00.03

    I imported apex application 4.0.2 and his object of decision-making support in my apex.

    Its installed successfully.

    But when I try to run this application it show me this error:

    ORA-01722: invalid number calculation error during the treatment.

    Thank you guys for your help.

    I found the solution.

    There was a problem in the authentication scheme.

    I called function as return function_name in 4.0.2

    but in the Apex 4.2.6 to call a function word return is not necessary.

    He was throwing the error caused that Word back.

  • ORA-06502: PL/SQL: digital error: error in the conversion of char to number

    Hello world.

    I have a strange problem here. I'll try to explain better. I work with APEX 4.2 and of Oracle Database 11 g Enterprise Edition Release 11.2.0.3.0 - 64 bit Production.

    Here are my parameters NLS_SESSION_PARAMETER and NLS_DATABASE_PARAMETER: NLS_NUMERIC_CHARACTERS,.


    I have a table with a lot of body numbers, and when I imported a MS Access application data, all fields were imported with the comma as decimal separator.


    Now, I have a form with several fields of number and when I leave a numeric field, a body of numbers of amount total is calculated and automatically filled with a bit of javascript.


    Now the problem: calculating fields (sum) succeeds only when I use the decimal as the delimiter. If I use the comma, I get a NaN value in the total amount field. I managed to convert all commas in points with javascript, so the total amount is calculated.

    When I try to save the record, I get the error: ORA-06502: PL/SQL: digital error: error in the conversion of char to number because I'm trying to save the separator point in my number fields.


    I tried to use REPLACE function to replace the. by one, before winning but does not solve the problem.


    This sounds familiar to anyone?


    Thanks in advance.



    OK, the problem is solved people.

    Somehow, the registration procedure had an influence on another calculation of my form and the error came from this process. So I put a to_number and replace stated in the calculation and all records very well and it shows my total.

  • Error processing request. ORA-06502: PL/SQL: digital error or value OK

    Hello

    I want to open a session in an APEX application using the IE 8 browser, but I can't because this error:

    https://naa-vm02.us.oracle.com:7510/i/error.gifErrorError processing request.
    ORA-06502: PL/SQL: digital error or value
    Ok

    I can run this app with Chrome or Mozilla, but I need to open it with IE.

    Can you please tell me how should I solve this problem?

    Thank you

    It is a problem with your version of APEX that you use... There was a patch released about 6 months ago... or you can just upgrade to the latest version. I also had this problem, and there are several similar topics in this forum about the exact problem and at least the a precise details on the patch/fix.

  • ORA-00947: not enough values error collect in bulk

    Hi guys,.

    I'm trying to COLLECT in a PL/SQL table, but I get ORA-00947: not enough values error message, even if the table has 4 values and select 4 values. Am I missing something?

    I have to add something to this?

    I've included the types of database objects that I created on the database.

    I have commented on the Original code and used the table DOUBLE just to make simple workout.

    /*

    CREATE or REPLACE TYPE Usage_Groups_for_coda_rec as

    object

    (Usage_Group_ID NUMBER (10),)

    Coda_comment VARCHAR2 (45).

    Amount NUMBER,

    Deduction_amount NUMBER);

    CREATE OR REPLACE

    TYPE USAGE_GROUPS_FOR_CODA_TAB AS

    TABLE OF Usage_Groups_for_coda_rec;

    */

    declare

    -CURSOR c_adj_roy_trans

    -EAST

    -SELECT DISTINCT rotr.on_behalf_of_soc_nbr, rotr.right_type

    -OF royalty_transaction rumble

    -WHERE rotr.ps_adjust_royalty_flg = cm_default.get_yes;

    CURSOR c_adj_roy_trans

    IS

    SELECT '052', 'P '.

    DOUBLE;

    t_uge_Grp_for_coda_tab USAGE_GROUPS_FOR_CODA_TAB; -the type of table was created on the database

    Start

    FOR r_adj_roy_trans IN c_adj_roy_trans LOOP

    -SELECT rotr.usage_group_id as Usage_Group_ID,

    -cm_coda_account_default.get_canc_adj_coda_comment | '- CAE' as Coda_comment,

    -SUM (NVL (rotr.gross_amt, 0) + NVL (rotr.reciprocal_deduction_amt, 0)) as an amount

    -SUM (rotr.reciprocal_deduction_amt) as Deduction_amount

    -COLLECT LOOSE t_uge_Grp_for_coda_tab

    -OF royalty_transaction rumble

    -WHERE rotr.ps_adjust_royalty_flg = cm_default.get_yes

    - AND rotr.on_behalf_of_soc_nbr = r_adj_roy_trans.on_behalf_of_soc_nbr

    - AND rotr.right_type = r_adj_roy_trans.right_type

    -Rotr.usage_group_id group;

    SELECT 6874534 as Usage_Group_ID,

    "This is a test - CAE" as Coda_comment.

    100 as an amount

    50 as Deduction_amount

    LOOSE COLLECTION t_uge_Grp_for_coda_tab

    DOUBLE;

    /*

    IF l_uge_Grp_for_coda_tab. COUNT > 0 THEN

    cm002p.std_coda_post_cashing_out_bulk (p_on_behalf_of_society_number = > r_adj_roy_trans.on_behalf_of_soc_nbr,)

    p_right_type = > r_adj_roy_trans.right_type,

    p_Usage_Groups_for_coda_tab = > t_uge_Grp_for_coda_tab,

    p_reverse_posting_direction = > FALSE,

    p_posting_override_direction = > NULL,

    p_cohi_id = > NULL

    );

    END IF;

    */

    END LOOP;

    end;



    Here's what you need to do:


    SELECT Usage_Groups_for_coda_rec(6874534, "It is a test - CAE", 100, 50)

    LOOSE COLLECTION t_uge_Grp_for_coda_tab

    DOUBLE;

    You try bulk collect into a collection of Usage_Groups_for_coda_recs, then you will need to make type compatible using the implicit of the type constructor.

  • While the BLOB conversion of type CLOB error - ORA-06502: PL/SQL: digital error or value

    Passing data from attachment of DB (Blob data Type) after the CLOB data type conversion, giving the error "ORA-06502: PL/SQL: digital error or value" in the PL/SQL package. If the BLOB size 32K > it will give another error works great my procedure.

    For example, I enclose my code here.

    function get_base64 (p_blob_in in blob) return clob is

    CLOB v_clob;

    CLOB v_result;

    whole v_offset;

    v_chunk_size PLS_INTEGER: = 12288;

    v_buffer_varchar varchar2 (32767).

    v_buffer_raw raw (32767).

    Start

    fnd_file.put_line (fnd_file.log, 'here');

    If p_blob_in is null then

    Returns a null value.

    end if;

    DBMS_LOB.CREATETEMPORARY (v_clob, true);

    fnd_file.put_line (fnd_file.log, 'here1');

    v_offset: = 1;

    fnd_file.put_line (fnd_file.log, 'Loop value'-| ceil (DBMS_LOB.) GetLength (p_blob_in) / v_chunk_size));

    because me in 1... ceil (DBMS_LOB. GetLength (p_blob_in) / v_chunk_size) loop

    DBMS_LOB. Read (p_blob_in, v_chunk_size, v_offset, v_buffer_raw);

    v_buffer_raw: = utl_encode.base64_encode (v_buffer_raw);

    v_buffer_varchar: = utl_raw.cast_to_varchar2 (v_buffer_raw);

    DBMS_LOB. WriteAppend (v_clob, length (v_buffer_varchar), v_buffer_varchar);

    v_offset: = v_offset + v_chunk_size;

    end loop;

    fnd_file.put_line (fnd_file.log, 'Out of the loop');

    v_result: = v_clob;

    fnd_file.put_line (fnd_file.log, 'V_result length' - |) DBMS_LOB. GetLength (v_result));

    fnd_file.put_line (fnd_file.log, 'V_result' - | v_result);

    DBMS_LOB.freeTemporary (v_clob);

    Return v_result;

    exception

    while others then

    fnd_file.put_line (fnd_file.log, 'Error based on the encode_base64' - |) SQLERRM);

    Returns a null value.

    end;

    In my main program I call this function as below:

    Main proceedings...

    l_return_clob CLOB.

    Begin

    ....

    l_return_clob: = get_base64 (p_blob_in);

    -In returning it gives error - ORA-06502: PL/SQL: digital error or value

    end;

    Then, please mark the thread ANSWERED.

  • ORA-06502: PL/SQL: digital error or the value in the conversion for a long TIME on the CLOB type

    Hello

    I have an EA of RDBMS Oracle 11.2.0.4.

    I ger the following error when I try to convert a data type LONG to type CLOB data thanks to a PL/SQL procedure:

    declare
    v_prefix varchar2 (20): = null;
    v_text_view_clob clob: = null;
    long v_text_view_long: = null;

    cursor c_v
    is
    Select
    a.view_name as view_name
    Of
    USER_VIEWS one;

    Start
    for r_v in c_v
    loop
    Start
    v_text_view_clob: = null;
    v_text_view_long: = null;

    -Do the SQL code of the view
    Select
    a.Text text
    in
    v_text_view_long
    Of
    USER_VIEWS one
    where
    a.view_name = r_v.view_name;

    v_text_view_clob: = v_text_view_long;

    update of ohibo_views one
    set
    a.view_text = v_text_view_clob
    where
    a.view_name = r_v.view_name;
    exception
    while others then
    dbms_output.put_line ('View =' | r_v.view_name |) "kan niet worden geconverteerd!");
    dbms_output.put_line (substr (sqlerrm, 1, 60));
    end;
    end loop;
    -commit;
    exception
    while others then
    lift;
    end;
    /

    I get the error a specific record:

    View = VER_POLISMUTATIES_VW kan niet worden geconverteerd!

    ORA-06502: PL/SQL: digital error or value

    At looked the origina; Value of type LONG and it is indeed a "long" piece of text.

    However, CLOB has a restriction about 4G * db_block_size and LONG 2 G - 1 according to the documentation.

    I should be able with the method above to convert a LONG in CLOB.

    Anyone had a similar situation?

    Thanks in advance for advice how to solve.

    Kind regards

    PS: my apologies, I didn't know which group to post this discussion: database or PL/SQL.

    Good indeed, a link with the right explanation.

    I didn't know that there was such a function.

    Thank you!

    Kind regards

  • ORA-12560 TNS Protocol adapting Error

    Hello everyone,

    When I connect forms oracle 11g R2 of the oracle 10g xe database this error (ORA-12560 TNS Protocol Adapter Error) occur why?

    Untitled.jpg

    As you use the database to 10G XE. go to \oraclexe\app\oracle\product\10.2.0\server\NETWORK\ADMIN


    Open the file tnsnames.ora and copy the configuration of XE and paste under the last # of your published file.

    then save, and try to connect.

    Hope this helps

    Hamid

    If someone useful or appropriate please mark accordingly.

  • ORA-12560: TNS:protocol adapter error. Virtual MACHINE works on old MBP and Win7 but not on new MBP [mid 2015 retina], speed or network problem?

    We strive to use our VM on the new retina MBP (mid-2015) with MacOS X 10.11 (El Capitan) but we had a problem starting from Oracle. If we first converted our ESX VM but once on the Mac laptop Oracle (v12.1.0.1.0 on WIN2012R2) does not open the database, error;

    ORA-12560: TNS:protocol adapter error

    Does not change us any setting on the virtual machine itself so services work fine. Network has set the IP with host only. Tried with Fusion 7.1 & Fusion 8.0.2 new Mac with nothing doesn't. Also with the different versions of the VM tools. Tried to remove the NIC in Fusion and recreate, don't sucses.

    Funny enough the same virtual machine starts fine on PC (workstation 10.3.0 & Win7), MBP beginning 2011 (Fusion 7 & Mac 10.10) or ESX itself for Oracle opens the database!

    That's why we think in the direction of the new MBP specific? speed or network issue? Ring the bells?


    Help appreciated!

    Bottom line, this is a problem of Oracle who dislikes the MBP on a virtual machine.

    for reference;

    Virtual MACHINE works very well on all platforms, but not on the latest MacBook Pro (retina, 15 inch, mid-2015). So, when you try to use sqlplus you might get the error that there is no such thing as SID. Earphone works very well, but the DB process does not record with earphone or work correctly also. But the process is running and a SID tnsping returns an OK. This isn't a problem of configuration Oracle as the VM and DB works well from the moment where you run the virtual machine on a PC or an old MBP. Either way, Virtualbox has the same problem so not a problem of Fusion.

    I will record a deal with Oracle but I doubt that it is corrected.

  • database from 32 bit to 64 bit on Linux data / ORA-06553: PLS-801: internal error [56319]

    Hello

    I've migrated EBS from 32 bit to 64 bit Linux database. I followed this Metalink note.

    Note - 341880.1 how to convert a database from 32-bit to 64-bit on Linux database?

    After the move, I did the below steps and get the error below... How to solve this problem?

    ===================================================================================

    SQL > startup nomount

    ORACLE instance started.

    Total System Global Area 595591168 bytes

    Bytes of size 2098016 fixed

    415239328 variable size bytes

    163577856 of database buffers bytes

    Redo buffers 14675968 bytes

    SQL > @create_control - file.sql

    Created control file.

    SQL > alter database open resetlogs;

    Database altered.

    SQL > ALTER TABLESPACE TEMP add TEMPFILE ' / d01/prd1/prd1data/tmp1.dbf' SIZE 2000 M REUSE AUTOEXTEND OFF;

    Tablespace altered.

    SQL > @$ORACLE_HOME/olap/admin/olap.sql SYSAUX TEMP

    BEGIN

    *

    ERROR on line 1:

    ORA-06553: PLS-801: internal error [56319]

    DECLARE

    *

    ERROR on line 1:

    ORA-06553: PLS-801: internal error [56319]

    BEGIN

    *

    ERROR on line 1:

    ORA-06553: PLS-801: internal error [56319]

    ===================================================================================

    Thank you.

    Please see the solution in (ORA-06553: PLS-801: internal error [56319], ORA-06544: PL/SQL: internal error, arguments: [56319] [] [], [], [], [], [], [], ORA-00604 when using different bit datafiles that executable Oracle (Doc ID 1436552.1)).

    Thank you

    Hussein

  • ORA-06502: PL/SQL: digital error or value

    Hello

    We have a package with a cursor that returns the session information:

    create or replace 
    PACKAGE BODY             "LOGIN_AUDIT" 
    ...
    ...
      CURSOR session_cur IS
        SELECT * FROM v$session WHERE audsid=USERENV('sessionid');
    
     session_rec session_cur%ROWTYPE;
    
    ...
    
    FUNCTION get_osuser
        RETURN VARCHAR2
      IS
      BEGIN
        RETURN session_rec.osuser;
      END;
    
    FUNCTION get_dbuser
        RETURN VARCHAR2
      IS
      BEGIN
        RETURN NVL(session_rec.username, 'ORACLE_SYS');
      END;
    
    ...
    

    The package compiled successfully and works ok out for a function that is the get_osuser. When you launch sqlplus, we get the following error:

    Select double LOGIN_audit.get_osuser;

    *

    ERROR on line 1:

    ORA-06502: PL/SQL: digital error or value

    ORA-06512: at "APPUSR. LOGIN_AUDIT', line 94

    ORA-06512: at "APPUSR. LOGIN_AUDIT', line 102

    The APPUSR has select priv on V$ SESSION and a select * from v$ session returns the session information. We can perform any other function since the package without any problem, for example:

    APPUSR@APPD > select double login_audit.get_dbuser;

    GET_DBUSER

    -------------------------------------------------------------

    APPUSR

    Can someone help us work on what happens please.

    PS Oracle: 11.2.0.3, OS Windows 2008 server.

    Thank you

    Really I have not aside, this and raise the question?

    Why you write all this code?

    wouldn't the following very good enough?

    1. FUNCTION get_osuser RETURN VARCHAR2;                    Use sys_context ('USERENV', 'OS_USER')
    2. FUNCTION get_dbuser RETURN VARCHAR2;                    Use sys_context ('USERENV', 'SESSION_USER')
    3. FUNCTION get_client_info RETURN VARCHAR2;                   Use sys_context ('USERENV', 'CLIENT_INFO')
    4. FUNCTION get_module_info RETURN VARCHAR2;               Use sys_context ('USERENV', 'MODULE')
    5. FUNCTION get_action_info RETURN VARCHAR2;                  Use sys_context ('USERENV', 'ACTION')

    Just do not know, I see the advantage of messing around with this slider and have to fight with the updating of information and others.

    This would totally work around the error you get and probably accelerate - and make it easier to maintain.

    ??

    Unless there is some additional requirements, that I'm missing

  • Oracle Database 11 g installation problem: ORA - 12560:TNS: Protocol adapter error.

    People,

    Hello. Initially, my Windows XP host name is 'localhost' and IP 127.0.0.1.

    I installed Oracle Database 11 g with Windows XP successfully and all customers in the database with the database instance running.

    For some reason, I uninstalled all of the database server and remove the whole installation directory /oracle.

    I have configured the address IP of Windows XP in 192.168.196.101 to ping other machines.

    For my needs, I installed Oracle Database 11 g with Windows XP again. During step 7 of 8: Oracle Database Configuration Assistant, I got this error:

    ORA - 12560:TNS: Protocol adapter error.

    I click on the button "Password management", there is no line in this window (no user name, no account of the lock).

    I have check the listener as below:

    C:\ > lsnrctl
    LSNRCTL > start
    His output: earphone HEADSET name has already been started.
    LSNRCTL > status
    Its release:... Service DB1 has 1 instance. The instance BD1 ready state. The command completed successfully.

    I check \Oracle\cfgtoollogs\dbca\DB1\trace file, the entry is:

    Listen [0] = LISTENER address = (ADDRESS = (PROTOCOL = TCP (port = 1522))(HOST=localhost))

    I also check \oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN\SAMPLE\tnsnames.ora file and listener.ora file, the entries are the same as below

    HOST = localhost port = 1522

    I think that HOST = localhost and port = 1522 is the cause of the ORA-12560 error because Windows XP was configured in HOST = 192.168.196.101.

    But I do not understand how to solve this problem.

    Can any folk tell me how to solve this problem? must cancel the installation of 8 on step 7 and install it again?


    Thank you.

    > The problem is that I am installing Oracle Database 11 g with Windows XP

    Why? above is NOT a supported combination.

    What makes you think that it should work without error?

  • I'm getting "ORA-00900: invalid SQL statement" error. ?

    I installed oracle 11 GR 2. and 'DBMS_METADATA_DIFF.COMPARE_ALTER ('TABLE', 'TBL_A', 'TBL_A','USER1 ','USER2 ')"to see the result as below, but I'm" ORA-00900: invalid SQL statement "error.   Any idea?



    I use:


    Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

    PL/SQL Release 11.2.0.1.0 - Production

    CORE 11.2.0.1.0 Production

    AMT for 32-bit Windows: Version 11.2.0.1.0 - Production

    NLSRTL Version 11.2.0.1.0 - Production




    SQL > desc user1.tbl_a
    Name                                      Null?    Type
    ----------------------------------------- -------- ----------------------------
    FIELD_A1 NOT NULL NUMBER
    FIELD_A2 VARCHAR2 (20)
    FIELD_A4 NOT NULL NUMBER (5.2)
    FIELD_A5 VARCHAR2 (10)
    FIELD_A6 NOT NULL NUMBER (2)

    SQL > desc user2.tbl_a
    Name                                      Null?    Type
    ----------------------------------------- -------- ----------------------------
    FIELD_A1 NOT NULL NUMBER
    FIELD_A2 VARCHAR2 (50)
    FIELD_A3                                           DATE
    FIELD_A4 NUMBER (5.2)
    FIELD_A5 NOT NULL VARCHAR2 (10)




    SQL > select dbms_metadata_diff.compare_alter ('TABLE', 'TBL_A', 'TBL_A', 'USER1', 'USER2') of double

    expected result:

    DBMS_METADATA_DIFF.COMPARE_ALTER ('TABLE', 'TBL_A', 'TBL_A', 'U1', 'U2')
    --------------------------------------------------------------------------------
    ALTER TABLE 'U1 '. "" ADD TBL_A "(DATE OF THE"FIELD_A3")
    ALTER TABLE 'U1 '. "" TBL_A "DROP ("FIELD_A6")
    ALTER TABLE 'U1 '. "" CHANGE TBL_A ' ("FIELD_A2' VARCHAR2 (50))
    ALTER TABLE 'U1 '. "" TBL_A ' CHANGE ("FIELD_A4" NUMBER (5.2) DEFAULT 0)
    ALTER TABLE 'U1 '. "" CHANGE TBL_A ' ('FIELD_A4' NULL)
    ALTER TABLE 'U1 '. "" CHANGE TBL_A ' ('FIELD_A5' ACTIVATE NOT NULL)

    Thanks for the reply rp,

    I got the result using "select dbms_metadata_diff.compare_alter ('TABLE', 'TBL_A', 'TBL_A', 'USER1', 'USER2') from dual"

  • ORA-12560: TNS adapter protocol error

    When you try to connect to the database of C:\app\user\product\11.2.0\client_1 using sqlplus error,

    ORA-12560: TNS adapter protocol error

    Previously, I had just the 10.2.0.3.0 server. installed on my vista machine, more than 11g is the newly installed client
    and with Server 10.2.0.3.0. It did not work properly

    When you try to connect using the query below

    sqlplus user/pwd@XE then in error, below

    ORA-12154: TNS: could not resolve the connect identifier

    Path of the server,
    C:\oraclexe\app\oracle\product\10.2.0\server\NETWORK\ADMIN

    Listener.ora
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = PLSExtProc)
          (ORACLE_HOME = C:\oraclexe\app\oracle\product\10.2.0\server)
          (PROGRAM = extproc)
        )
        (SID_DESC =
          (SID_NAME = CLRExtProc)
          (ORACLE_HOME = C:\oraclexe\app\oracle\product\10.2.0\server)
          (PROGRAM = extproc)
        )
      )
    
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
          (ADDRESS = (PROTOCOL = TCP)(HOST = My-PC)(PORT = 1521))
        )
      )
    
    DEFAULT_SERVICE_LISTENER = (XE)
    SQLNET.ora
    # This file is actually generated by netca. But if customers choose to 
    # install "Software Only", this file wont exist and without the native 
    # authentication, they will not be able to connect to the database on NT.
    
    SQLNET.AUTHENTICATION_SERVICES = (NTS)
    tnsnames.ora
    XE =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = My-PC)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = XE)
        )
      )
    
    EXTPROC_CONNECTION_DATA =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
        )
        (CONNECT_DATA =
          (SID = PLSExtProc)
          (PRESENTATION = RO)
        )
      )
    
    ORACLR_CONNECTION_DATA = 
      (DESCRIPTION = 
        (ADDRESS_LIST = 
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE)) 
        ) 
        (CONNECT_DATA = 
          (SID = CLRExtProc) 
          (PRESENTATION = RO) 
        ) 
      ) 
    Does not search too on the net / Forum

    But still don't know what is the solution for this error

    Help, please

    You should have a file under C:\app\user\product\11.2.0\client_1\network\admin not sample a tnsnames.

    copy C:\oraclexe\app\oracle\product\10.2.0\server\network\admin\ tnsnames file to C:\app\user\product\11.2.0\client_1\network\admin

Maybe you are looking for