'DBMS_FGA identifier must be declared' when it is called from PL/SQL package...

Hello

I'm calling dbms_fga dynamically (of sorts) of a package, and I get the error according to the title.

I tried as many ways as I can think this call from another package, with each time similar results.

The user/owner of the package has rights DBA, so it doesn't seem to be a permissions issue.

Oracle Version is 11.1.0.6.0 on Suse.

any ideas on this person?

See you soon

CODE:

Attempt 1:

PROCEDURE enable_sql_auditing (on_off Boolean false by default) is
v_ssql varchar2 (900);
cursor c1 is
Select table_name
of all_all_tables
where owner = gcv_pkg_owner;
Start
for rec loop c1
sys.dbms_fga.add_policy (object_schema = > "| gcv_pkg_owner |",)
object_name = > "| Rec.TABLE_NAME: ",.
POLICY_NAME = > "| Rec.table_name | ' _AUDIT "'.
handler_schema = > "| gcv_pkg_owner: ",.
handler_module = > 'FGA_SQL ',.
activate = > true);
end loop;
end enable_sql_auditing;


Attempt 2:

PROCEDURE enable_sql_auditing (on_off Boolean false by default) is
v_ssql varchar2 (900);
cursor c1 is
Select table_name
of all_all_tables
where owner = gcv_pkg_owner;
Start
for rec loop c1
v_ssql: = ' start sys.dbms_fga.add_policy (object_schema = > "' | gcv_pkg_owner |) "', object_name = >"' | Rec.TABLE_NAME | " ', policy_name = > "' | Rec.table_name: "_AUDIT", select = > true); end;';
run immediately (v_ssql);
end loop;

end enable_sql_auditing;

Frenchwood wrote:
The user/owner of the package has rights DBA, so it doesn't seem to be a permissions issue.

But it is.

DBA is a role.
in PL/SQL, the permissions must be granted directly, rather than through roles.

for example, you need to directly grant the Execute permission on the package for the required users.

Tags: Database

Similar Questions

  • identifier must be declared.

    I select ip lan of the client in a variable system that I have it placed in a TIME NEW FORM INSTANCE

    Select sys_context ('user', 'IP_ADDRESS') in the double v_ip;

    IM using 9i and dev - 6i

    the variable is v_ip varchar2 (20);

    but it keep saying sys_context identifier must be declared.

    Select sys_context ('USERENV', 'IP_ADDRESS') in the double v_ip;

    NOT tested

    Why send you? It does not work in Forms 6i, sys_context is not (yet) available with this version.

  • Add MenuItem to the mapping of Blackberry, only when it is called from my application

    Hi all

    I develop a Blackberry application that calls the Blackberry plan using the api to Invoke.

    I need to add the menu item to this map of blackberry only when it is called from my application (means, blackberry card should not have any other newly added menuItem when it is called directly as a standalone application).

    Is this possible? If so, how is it possibe?

    Help, please.

    I guess you can try:

    1. Add the menu item

    2 call

    3. remove the menu call back form element

  • PLS-00201: identifier 'i' must be declared when using BULK COLLECT with FORALL to insert data in 2 tables?

    iHi.

    Declare
       cursor c_1
       is
        select col1,col2,col3,col4
        from table1
    
    
       type t_type is table of c_1%rowtype index by binary_integer;
       v_data t_type;
    BEGIN
       OPEN c_1;
       LOOP
          FETCH c_1 BULK COLLECT INTO v_data LIMIT 200;
          EXIT WHEN v_data.COUNT = 0;
          FORALL i IN v_data.FIRST .. v_data.LAST
             INSERT INTO xxc_table
               (col1,
                col3,
                col4
               )
                SELECT v_data (i).col1,
                       v_data (i).col3,
                       v_data (i).col4
                  FROM DUAL
                 WHERE NOT EXISTS
                              (SELECT 1
                                 FROM xxc_table a
                                WHERE col1=col1
                                      .....
                              );
                         --commit;
             INSERT INTO xxc_table1
               (col1,
               col2,
              col3,
              col4
               )
                SELECT v_data (i).col1,
                       v_data (i).col2,
                       v_data (i).col3,
                       'Y'
                  FROM DUAL
                 WHERE NOT EXISTS
                              (SELECT 1
                                 FROM xxc_table1 a
                                WHERE col1=col1
          .....
         );
    
    
           --exit when c_1%notfound;
       END LOOP;
       CLOSE c_1;
       commit;
    END;
    
    
    
    
    
    
    
    

    I get 40/28-PLS-00201: identifier 'I' must be declared what the problem in the above code please help me and I have lakhs of data

    Thank you

    Post edited by: Rajesh123 I changed IDX

    Post edited by: Rajesh123 changed t_type c_1 in Fetch

    But by using a SET of INSERT to insert into two tables at once in the same query would do the job without any collection of bulk of PL and avoid to query two times too.

    for example, as a single INSERT...

    SQL > create table table1 as
    2. Select 1 as col1, col2 of 1, 1 as col3, 1 as col4 Union double all the
    3 select 2,2,2,2 of all the double union
    4 Select 3,3,3,3 Union double all the
    5 Select 4,4,4,4 of all the double union
    6 select 5,5,5,5 of all the double union
    7 select 6,6,6,6 of all the double union
    8 select 7,7,7,7 of all the double union
    9 select 8,8,8,8 of all the double union
    10. Select 9,9,9,9 to the Union double all the
    11. Select double 10,10,10,10
    12.

    Table created.

    SQL > create table xxc_table like
    2. Select 1 as col1, col3 2, 3 as col4 Union double all the
    3. Select the 3, 4, 5 Union double all the
    4. Select the 5, 6, 7 double
    5.

    Table created.

    SQL > create table xxc_table1 like
    2. Select 3 as col1, col2, col3, 5 4 "n" as col4 Union double all the
    3. Select the 6, 7, 8, double "n"
    4.

    Table created.

    SQL > insert all
    2 when the xt_insert is null then
    3 in xxc_table (col1, col3, col4)
    4 values (col1, col3, col4)
    5 when the xt1_insert is null then
    6 in xxc_table1 (col1, col2, col3, col4)
    7 values (col1, col2, col3, 'Y')
    8. Select t1.col1 t1.col2, t1.col3, t1.col4
    9, xt.col1 as xt_insert
    10, xt1.col1 as xt1_insert
    11 from table1 t1
    12 left join external xxc_table xt (t1.col1 = xt.col1)
    13 left xt1 xxc_table1 outer join (t1.col1 = xt1.col1)
    14.

    15 rows created.

    SQL > select * from xxc_table by 1.
    COL1 COL3 COL4
    ---------- ---------- ----------
    1          2          3
    2          2          2
    3          4          5
    4          4          4
    5          6          7
    6          6          6
    7          7          7
    8          8          8
    9          9          9
    10-10-10

    10 selected lines.

    SQL > select * from xxc_table1 by 1.

    COL1 COL2 COL3 C
    ---------- ---------- ---------- -
    1          1          1 Y
    2          2          2 Y
    3          4          5 N
    4          4          4 Y
    5          5          5 Y
    6          7          8 N
    7          7          7 Y
    8          8          8 Y
    9          9          9 Y
    10-10-10

    10 selected lines.

    SQL >

  • Why is 'identifier must be declared' error when I stated that he

    It worked before, so I don't know why it doesn't work now...

    -------------------CODE--------------------------
    trigger the echo
    set timing on
    Set serveroutput on
    Set of feedback on
    set pagesize 0
    topic on the value
    Set term on
    game to check on
    off Set trimspool

    DECLARE

    ChildTables ARRAY TYPE IS VARCHAR2 (1000);
    childTableNames childTables: = childTables();
    childTableTmp chlidTables: = childTables();

    BEGIN

    DBMS_OUTPUT. Put_line ('hello');
    END;
    ---------------------------CODE END---------------------

    -----------------------ERROR-----------------------------
    childTableTmp chlidTables: = childTables();
    *
    ERROR on line 18:
    ORA-06550: line 18, column 15:
    PLS-00201: identifier 'CHLIDTABLES' must be declared.
    ORA-06550: line 18, column 15:
    PL/SQL: Ignored Element

    >
    childTableTmp chlidTables: = childTables();
    PLS-00201: identifier 'CHLIDTABLES' must be declared.
    >
    That does not say "childTables" - he says "chlidTables".

    Difficulty the typo

  • PLS-00201: identifier must be declared.

    --header
    
    create or replace
    package session_info
    as
      function get_osuser
      return v$session.OSUSER%type;
    end;
    
    --body 
    
    create or replace
    package body session_info
    as
      function get_osuser
      return v$session.OSUSER%type
      as
        osusername v$session.OSUSER%type;
      begin
        begin
          select upper(osuser)
          into osusername
          from v$session
          where audsid = USERENV('SESSIONID')
          and rownum = 1;
        exception
          when others then
             osusername := substr(user, 1, 30);
         end;
         return substr(osusername || '_' || user, 1, 30);
      exception
        when others then
           return 'SESSION_INFO ERROR';
      end;
    end;
    
    --error
    Error(4,3): PL/SQL: Declaration ignored
    Error(5,10): PLS-00201: identifier 'V$SESSION' must be declared
    can someone help me? where I have to declare v$ session?

    Objects stored with (by default) Copyright ignore privileges based on roles. Most likely, owner package session_info user is granted select on v$ session through the role (or not at all). Grant select on v_$ session to the owner of the package directly.

    SY.

  • BlackBerry torch Smartphone click when I incoming calls from reception - even when silence

    Anyone else have a problem with the BB Torch clicking when an incoming call is received?  This occurs even when my bb is on silence.  How can I stop it?

    Not a problem, if you have any problems or questions, we're always here in the forums.

  • How to use today's date in liquid when it is called from a campaign by email

    I have an email campaign that is configured to run every 7 days and I want to restore specific entries of a Web application based on the current date.

    I use the below in the content of the email:

    {module_webapps myCategory = 'Cat1' render = "collection" template="/layouts/custom/rounds-collection.tpl" id = "cms-towers" filter = "all"}

    and within the referenced model, I use the below to get today's date.

    {assign % = globals.site.dateNow | date: "yyyy-MM-dd" | convert: 'day'-%}

    The problem is that globals.site.dateNow makes whites when called from a campaign by e-mail.

    If I use the same method as before in a web page (rather than an email campaign), it works perfectly so I guess that globals.site.dateNow is not available in an email campaign.

    That's why I tried another way which is to pass another parameter of the module including the delivery date of the email (as shown below):

    {module_webapps myCategory = make 'Cat1' myDate = "{tag_deliverydate}" = "collection" template="/layouts/custom/rounds-collection.tpl" id = "cms-towers" filter = "all"}

    It is however is to make meanings like 'text' in the email. He has successfully replaced the {tag_deliverydate} with 'October 19, 2015', but it does not then decipher the tag module. I guess it's a bit a chicken and the egg tag thing which should make first.

    How do date 'today' or "email delivery date" available in my template file, then use this value in my liquid logic in an email campaign?

    You cannot run javascript in the emails.
    What you try to you can still.

  • Passing the record in function type [error: identifier must be declared]

    Hello
    I have a record defined in my procedure type
    type chk_tab is (record
    effective date,
    County number (9)
    )

    type chk_typ is table of chk_tab of binary integer index;
    chk_typ_rec chk_typ;

    I have to pass another function of the effect and the County, tried doin as below:
    function name: func_chk_typ

    func_chk_typ (effect, count);

    This property returns a saying "identifier effect must be reported.

    I need to pass those values to registration in the service type, how more of this coming?
    Any help is appreciated.

    Hi Camilla,

    Find code below.

    The function code:

    CREATE OR REPLACE FUNCTION fetch_band(eff in date,ineff in date)
    return number
    is
    
      lu_cb_sysid  NUMBER;
    
    BEGIN
    
    select fk_cb_sysid
    into lu_cb_sysid
    from ia_for_icon
    where cr_ans_date >= eff
    and cr_ans_date < ineff;
    
    RETURN lu_cb_sysid;
    
    END fetch_band;
    

    Code of procedure. Here, I joined the service.

    CREATE OR REPLACE procedure abc(a varchar, b number) is
      type cns_tab_record is record(
        eff   date,
        ineff date);
    
      type cns_tab_typ is table of cns_tab_record index by binary_integer;
    
      cns_tab cns_tab_typ;
    
      v_lu_cb_sysid NUMBER;
    
    BEGIN  
    
      -- Here you have to assign the values to your table type record.
      -- For example I am passing two values SYSDATE and SYSDATE - 10
    
      cns_tab(1).eff := SYSDATE;
      cns_tab(1).ineff := SYSDATE - 10;
    
      v_lu_cb_sysid:= fetch_band(cns_tab(1).eff, cns_tab(1).ineff);
    
    END abc;
    

    But I wonder why you use the data type here table type.

    Hope code above will help you.

    Thank you
    Suri

  • Bad performance of the Script when it is called from another Script

    Hello

    I have developed a. SOUTH who calls another script via "ScriptInclude" command and I noticed a substantial decrease in performance when running in this way.

    Normally my calculation scripts runs in less then 10 sec when it is running alone.

    However, when I call the script of my. Script SOUTH it takes 2-10 minutes on the same set of data.

    It's almost as if he is running in debug mode, where I can see my channel list being filled with data that the script runs.

    What could slow this process down so much?

    With the help of DIAdem 2015 32 bit.

    OK, I used this to speed up the result and it works like a charm

    Call UIAutoRefreshSet (False)     

  • VB6 DLL is not log messages in the Windows Server 2003 event log when it is called from an ASP page

    Hi all

    I have an ASP web application, I will create a "VBModule1" (VB6 Dll) instance of an ASP page and inside this method of "VBModule1" I create an instance of another VB6 Dll 'VBLogger', who calls App.LogEvent () to write messages to the event log.

    I tested the Web application on the develepoment (XP) machine and everything worked fine but when the user runs the Web application on the Production Server (windows server 2003) events are not saved.

    Friend missing the security settings of my ASP web app that needs to be configured on Windows Server 2003 for VB6 DLLs logging events?

    Please think as soon as POSSIBLE.

    IIS on Windows server 20003 version: 6.0

    Thank you.

    Hello

    The question you have posted is related to Windows Server 2003 would be better suited to the Windows Server community.

    Please visit the link below to find a community that will support what ask you:

    http://social.technet.Microsoft.com/forums/en-us/category/WindowsServer

  • Table: nowhere able to display more than 10 lines when it is called from workflow

    Hello world
    I request a page that contains the advanced table and its controller class two-step.

    The first is a survey form, when this page is called, it works very well. When there are more than 10 lines, top 10 appear on the rendered page and when you click on the following link, the other lines are displayed. It's because I gave the property of records displayed on advanced table = 10. I'm very well so far.

    A second is I call this page again from a past of workflow. There is a link to see more details on the notification of workflow, click on this link will open the page with 10 records displayed. But when the tent user click Next, it does not work. It is not just cool off.


    Its very weird. not able to understand what could be wrong when calling notificiton wf. Its the same page and conroller code used in both places.


    Please help me!


    Thank you
    Sunny

    Verify that the url parameters that are passed in each case. Looks like there is a difference.

    Kristofer Cruz

  • getAttribute recovering no value when it is called from AM...

    Hi people



    Sorry, this is a bit of last resort for something that should be simple enough.



    I am trying to retrieve a value from a VO initialized to put in my page settings, but the method I want to my AM is not returning a value, and I am a bit stuck as to why.



    First of all, the VO is initialized from controller of the region:



    ' Public Sub processRequest (pageContext OAPageContext, OAWebBean webBean)

    {

    super.processRequest (pageContext, webBean);



    OAApplicationModule am = pageContext.getRootApplicationModule ();



    String expenseClaimId = pageContext.getParameter ("expenseClaimId");



    < strong > if (expenseClaimId! = null) < facilities >

    < strong > {< facilities >



    < strong > / / if it does not already exist, create the record spending < facilities > request header



    < strong > System.out.println ("... ProcessRequest ExpenseClaimHeaderCO... expenseClaimId... (' + expenseClaimId); < facilities >





    < strong > settings [Serializable] = {expenseClaimId}; < facilities >

    < strong > class [] paramTypes = {String.class}; < facilities >

    < strong > am.invokeMethod ("initClaimHeader", parameters, paramTypes); < facilities >



    < strong > / / now that the VO has been initialized by using the id to claim expenses, we should be able to < facilities >

    < strong > / / get the value of the IRA of the VO by using getEri() of the current line of the < facilities > VO

    < strong > / / our method on the AM, right? < facilities >



    < strong > String ExpenseReferenceId = (String) am.invokeMethod ("getExpenseReferenceId"); < facilities >

    pageContext.putParameter ("ERI", ExpenseReferenceId) < strong >;



    < facilities > < strong >} < / strong > < strong >

    } < facilities > //pro < strong > c < facilities > essRequest



    The AM method is as follows:



    < strong > public getExpenseReferenceId() as String

    {



    String ExpenseReferenceId = new String();



    ExpenseClaimVOImpl vo = getExpenseClaimVO1();



    If (vo.isPreparedForExecution ())

    {



    ExpenseClaimVORowImpl voRow = (ExpenseClaimVORowImpl) vo.getCurrentRow ();

    ExpenseReferenceId = (String) voRow.getEri ();



    System.out.println ("... Giraudeau..."+ ExpenseReferenceId);

    }



    Return ExpenseReferenceId;



    }



    < facilities > but I just get a null pointer error when I try to run it.



    If I call < strong > getExpenseReferenceId() < facilities >
    before that the VO is initialized, it retrieves a value - but of course not for the line concerned.



    Any thoughts?



    Thank you



    CK

    Kindly look at the line where NPE is coming. I suspect this because you use getCurrentRow to get the current line. If your initialization code does not set the current line, this method returns null. Please set the current line in the initialization code and then you can check if everything works very well.

    Concerning
    Sumit

  • Define apex execution context when it is called from user-defined form.

    I have a very (too) page complex to build. The page is built dynamically by the pl/sql in a pl/sql area. The procedure generates a form that is displayed to a user defined tag accepts function.

    I defined a procedure given to the public that receives as parameters (< entries... >) items published by the form's action property (< do action = "pkg.accept" > for example "") and manage the thing to (insert/update) based on the complexity and the way the form is built (like most of the people who coded pl/sql web have already done once in their life). Everything works very well.

    Now that 95% I need to work properly, I would need to access the data in the session of the apex which is not accessible because the execution context (the proc accept in the package pkg above) are not called by apex but directly. I have many other ways to do but the easiest would be a api, I can call with parameters, for example, user, session, app and page that set the environment variables and who would do the v() function would kick out me the required information.

    What makes this work (with the exception of the internal API)...

    Yes, but you can retrieve only items on level application (not those who belong to the pages). First of all, in addition to these steps, I have already mentioned, the overall application ID value with:

    apex_application.g_flow_id: = ;

    Then call the function (return varchar2) apex_util.fetch_app_item ('');

    Scott

  • Xperiaa Z3 Compact restarts when you receive calls.

    My 2 month od Z3 Compact it recharges when it receives calls from inncoming. This happens especially if all other apps are open or in use, not when the phone is just "inactive". Tried to WCDMA, GSM, WCDMA (peferred) GSM and WCDMA/GSM - no change of LTE (preferred).

    Traveled 'repair phone' support ' new install (?) - no change.

    Tried to restore the factory - no change.

    Every time that happens the incoming call is not registered as "missed calls" in the call log.

    Tempted to throw!

    The phone worked without any problem, because I'm back. Another thing I noticed: the phone works quite a bit 'cooler '. Before that I sent in, could hardly touch the back after 10-15 minutes of active use on the net or "candy overwhelming." I don't know Excactly what caused what to break. It was overheated, which makes the failure of the motherboard or motherboard causing the heat?

Maybe you are looking for