The NAC replacement procedure

Hi Experts,

Our 3315 NAC does not work because of a hardware failure. So let's replace that. Therefore kindly confirm the steps to take the backup and the procedure to install it?

Thank you

Kind regards

Vijay.

Since there seems to be no method to perform a backup of the CLI on the appliance 3315, we go the route of the workaround. This may seem a little out there, but the only way I can see a backup being created without using the WebGUI interface.

First of all, you have IP access to the device of the ANC?

If this isn't the case, quit reading and contact TAC.

If you have backups of configuration in the past, they are stored in the/guest/bakcups directory and can be transferred via FTP, SFTP, etc...

If not, then download a upgrade file that is newer than the version you are running (if you are running the latest version, download the upgrade file for this version). In this case, v2.1.  Transfer the file to your repository and run the upgrade on the comment of the NAC server.

Note Before the 2.1 update, a snapshot backup of the existing 1.x or 2.0.x database is automatically created and stored in the guest.bak directory. In the case of an upgrade failure, Cisco recommends to make a local backup of this directory.

http://www.Cisco.com/en/us/docs/security/NAC/guestserver/Release_notes/21/gsrn21.html#wp111257

Otherwise, I am at a loss on this issue.

Please rate useful messages and mark this question as answered if, in fact, does that answer your question.  Otherwise, feel free to post additional questions.

Charles Moreton

Tags: Cisco Security

Similar Questions

  • Version of the NAC

    Dear,

    Can what version of the NAC I install VMware?

    Can anyone help please with the above query.

    Thank you

    NAC is not supported on Vmware. Yet people have managed to install NAC4.1 on Vmware, but newer version do not work.

    There is a new product called Cisco ISE, which will eventually replace the NAC. Cisco ISE can be installed on Vmware.

  • The Stub of the NAC for 4.7 Agent options

    Hello

    Does anyone know if Cisco provides an option of replacement for the role of the NAC Agent of the Stub in version 4.7?

    Thank you.

    Dennis,

    The service is installed as part of installing the agent. Now the agent installation requires administrator rights.

    HTH,

    Faisal

  • Basic of the NAC deployment question

    Hello

    Do I have reason to assume that at least 2 devices - a server and Manager must consist of a NAC deployment? or is the manager, an application running on a Windows Server? the Manager can run on the same machine as the server?

    My second question concerns Cisco Trust Agent and clean access Agent. CTA has actually managed by CAA? from what I see, CTA was part of the old framework of the NAC until they start using devices.

    Many thanks in advance,

    DOM

    Manager and the server can run on both PC or Cisco devices, which are in fact HP ProLiant DL140 G3 or HP ProLiant DL360 G5 PCs ;) You will need two devices in all cases.

    Second question - no one knows what will happen with all technology in the future. Is it completely replaced by MS NAP? The framework of the NAC is cancelled? Two Cisco solutions are not perfect. What customers actually need, is to have all the features of the NAC appliance to operate directly on the routers and Cisco switches. No clean access server no need in this case, only managing! And the OOB mode which is difficult to set up, support and troubleshoot will disappeared. The NAC framework is executed directly on Cisco devices, but it's not feature-REACH as NAC Appliance.

  • Re: "insufficient privileges" error when you run the Java stored procedure in another schema

    I get an "insufficient privileges" error when you run the Java stored procedure in another schema, see details below.  I don't know what are missing privileges (I already granted the EXECUTE privilege), suggestions?  -Thank you.

    Define a simple java class and deploy it as a Java stored procedure to test:


    Schema: User1

    test of the package;

    public class HelloWorld {}

    public HelloWorld() {

    Super();

    }

    public static String Hello () {}

    Return "HELLO";

    }

    }

    CREATE or REPLACE FUNCTION HELLO RETURN VARCHAR2 AUTHID CURRENT_USER AS LANGUAGE JAVA NAME ' test. HelloWorld.hello () return java.lang.String';

    Grant execute on USER2 HELLO

    Test the Java stored procedure through the PL/SQL function call (in the same schema):


    Schema: User1

    SET SERVEROUTPUT ON

    DECLARE

    v_Return VARCHAR2 (200);

    BEGIN

    v_Return: = User1. HELLO;

    DBMS_OUTPUT. Put_line ('v_Return =' | v_Return);

    END;

    anonymous block filled

    v_Return = HELLO

    Test the Java stored procedure through the PL/SQL function call in a different pattern:


    Schema: USER2

    SET SERVEROUTPUT ON

    DECLARE

    v_Return VARCHAR2 (200);

    BEGIN

    v_Return: = User1. HELLO;

    DBMS_OUTPUT. Put_line ('v_Return =' | v_Return);

    END;

    Error report-

    ORA-01031: insufficient privileges

    ORA-06512: at "User1." HELLO', line 1

    ORA-06512: at line 4 level

    01031 00000 - "insufficient privileges".

    * Cause: An attempt was made to change the user name or password

    without the privilege appropriate. This error also occurs if

    trying to install a database without the need for employment

    access privileges.

    When Trusted Oracle is configure in DBMS MAC, this error may occur

    If the user has been granted the privilege necessary for a higher label

    that the connection is active.

    * Action: Ask the database to perform the operation or grant administrator

    the required privileges.

    For users Trusted Oracle get this error, well that granted the

    the privilege that is suitable for the top label, ask the database

    administrator to grant the privilege to the appropriate label.

    You have created the function with AUTHID CURRENT_USER, which means that the function is executed with the rights of the applicant (but not with the rights of the author). This means that the applicant must have grants (directly or through roles) on all used/accessible objects in the service. In your case the user USER2 has not granted with EXECUTE on the class/source Java test. Class HelloWorld, causing the ORA-01031 exception. You create service without AUTHID CURRENT_USER (i.e. with AUTHID DEFINE, which is by default, if you do not have a specific reason to use AUTHID CURRENT_USER) or grant EXECUTE on JAVA test SOURCE. Class HelloWorld to User2.

    Dimitar

  • How to move the functions and procedures of packages in a schema?

    Hello

    I have less than the needs for a work at home and my question is if anyone can point me in the right direction to find documentation that can help me solve below. Any information will be appreciated. Thank you.

    Write procedures and functions (included or not in packets) as .txt or .sql scripts. Once they have been launched in Developer SQL they should, in addition, the functions and procedures of packages in the current schema. If the current schema contains only 2 packages, pac1 (p11, p12 procedures and functions f11, f12, f13) and pac2 (contains the p21 following procedures, p22, p23 and f21 and functions f21 (case of overload), running the scripts produce the following effects:)

    • Procedures p11, p12, p21, p22, p23, and f11, f12 and f13 functions will be created in the current schema.
    • PAC2 will contain 2 instances of the function of overload-f21; they will be kept in the package, without be created in the current schema. If all overloaded procedures/functions will be kept in their original packaging
    • If pac1 contains variables, cursors, and public types, keep us only the details of the package (and remove the body); usually if the packages contain no overloaded functions or procedures the body will be removed and if no variable, cursors, types of public then we will remove the header.
    • If in the triggers, procedures and functions we will call procedures/functions packages (procedures and functions moved into the current schema) they reference will need to be updated (via editing the body or recompilation) for example if pa1.p12 will be replaced with p12.
    • Scripts must have numbers in the next series (01... n) and the characters that explain the content.

    My only advice would be to remember that these are public forums and if YOU can find them, therefore cannot your instructors.

    In addition, those are horrible procedure names and function

    This mission seems to be around to overload the pl/sql objects and... prioritize a research on Oracle documentation around overhead and legacy
    http://docs.Oracle.com/CD/B28359_01/AppDev.111/b28371/adobjplsql.htm#i21148

  • USING THE parameters in procedures

    Hello Experts;


    Hello all;


    I am trying to run a program by using the parameter of the procedure (IN and OUT IN).

    I have an emp table I want to update the details of the column perk.


    > > Here is coding > >


    1 create or replace procedure emp_salary

    2 (id IN emp.eid%type, salary IN OUT emp.esalary%type) IS

    number of tmp_sal 3.

    4 BEGIN

    5. Select esalary in the tmp_sal of the emp where eid = id;

    6 If tmp_sal between 10000 and 20000 THEN

    7 salary_inout: = tmp_sal * 1.2;

    8 tmp_sal between 20001 and 29999 ElseIf THEN

    9 salary_inout: = tmp_sal * 1.8;

    10 if ELS tmp_sal > 30000 then

    11 salary_inout: = tmp_sal * 2.0;

    12 * END;

    SQL > /.

    CAUTION: Procedure created with compilation errors.

    SQL > show errors;

    PROCEDURAL EMP_SALARY errors:

    LINE/COL ERROR

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

    10/5 PLS-00103: encountered the symbol "IF" when awaits an of the

    Next: =. ( @ % ;   The symbol ';' was replaced by 'IF' continue.

    12/4 PLS-00103: encountered the symbol ";" when expecting one of the

    Suite: If

    MY version of DB is: 10.2.0.1

    Details of the EMP:


    SQL > select * from emp;

    | EID | ENAME |  EQUAL |  ESALARY | ECITY |  EPERK |

    1 sona |   MBA |  10000 | ********    |            |

    Maya 2 |   MCA |  15000 |  **********|            |

    3 sony |   MSC |  20000 |  ****         |            |

    4 King |   Magnin |  22000 |  **********|             |

    5 ford |   Magnin |  40000 | **********|              |

    Thanks in advance;

    Hello

    Sorry, I'm not sure to understand any issue.

    8f953842-815B-4D8C-833d-f2a3dd51e602 wrote:

    Hello Frank klush.

    > Argument datatype >

    EID NUMBER

    ESALARY VARCHAR2 (15)

    Question 1: if I declare esalary is varchar2, how will this affect my argument?

    As I have already said, the pay argument is not used.  As long as it is not used, it doesn't matter what type of data it has, but you must call the procedure with an argument of this type of data.

    Because you named the "wages" argument, I suppose that it is supposed to contain a value that could come from the emp table esalary column.  If that's what you plan to use it for, then you stated correctly in the procedure, such as emp.esalary%TYPE.  If you change the defifinitin = table one to be esalart (for example) a certain NUMBER (which seems to be a good idea), then you will not have to change the code anything in the procedure, simply recompile the procedure.

    Question 2: Ok. Emp_salary procedure requires 2 arguments, if, therefore, here only one argument is passed for example salary only.

    What makes sense here?

    DECLARE

    1. s emp.esalary%TYPE;
    2. BEGIN
    3. emp_salary (123, s);
    4. END;
    5. /

    Thanks in advance, really I put t know this logic. Please explain a little more.

    because I learn pl/sql.

    Thank you.

    Where is that a single argument?

    In your original code, zero arguments were passed.

    In the anonymous block above, two arguments are passed:

    (1) the literal NUMBER 123.  The 1st formal argument, id, has the data type of emp.eid%TYPE, and emp.eid said a NUMBER, so 123 is a value to pass as the argument IN perfectly well.

    (2) the variable s.  The 2nd formal argument, salaries, is defined as emp.esalary%TYPE, and that's exactly how s is defined, so s is a perfectly fine variable pass as argument IN OUT.

  • SQL > create or replace procedure sp_Validate3 (p_acr_no IN varchar2 2)

    Hi all

    11.2.0.1

    Can you help me to debug what is that pl/sql code error? Thank you
    SQL> create or replace procedure sp_Validate3(p_acr_no    IN  varchar2
      2                                         ,p_recordset OUT sys_refcursor
      3                                         ) as
      4  begin
      5   open p_recordset for
      6      select am.acr_no as acr_no
      7            ,'TEST' as lastname
      8            ,nvl(a.or_no,'0') as ecc_orno
      9            ,nvl(b.or_no,'0') as rp_orno
     10            ,nvl(c.or_no,'0') as ar_orno
     11      from   tab t
     12                        join acr_master     am on (trim(acr_no) = p_acr_no)
     13             left outer join payment_master a  on (payment_type = 'ECC' and trim(acr_no) = p_acr_no)
     14             left outer join payment_master b  on (payment_type = 'RP'  and trim(acr_no) = p_acr_no)
     15             left outer join payment_master c  on (payment_type = 'AR'  and trim(acr_no) = p_acr_no);
     16  end;
     17  / 
     
    Warning: Procedure created with compilation errors.
     
    SQL> show error
    Errors for PROCEDURE SP_VALIDATE3:
     
    LINE/COL ERROR
    -------- -----------------------------------------------------------------
    6/5      PL/SQL: SQL Statement ignored
    13/80    PL/SQL: ORA-00918: column ambiguously defined
    SQL>
    create table acr_master(acr_no varchar2(10))
    
    drop table payment_master
    
    create table payment_master(or_no varchar2(10),acr_no varchar2(10),payment_type varchar2(10))
    
    /* Formatted on 06/06/2013 6:06:58 PM (QP5 v5.126.903.23003) */
    CREATE OR REPLACE PROCEDURE sp_Validate3 (p_acr_no      IN     VARCHAR2,
                                              p_recordset      OUT sys_refcursor)
    AS
    BEGIN
       OPEN p_recordset FOR
          SELECT   am.acr_no AS acr_no,
                   'TEST' AS lastname,
                   NVL (a.or_no, '0') AS ecc_orno,
                   NVL (b.or_no, '0') AS rp_orno,
                   NVL (c.or_no, '0') AS ar_orno
            FROM               tab t
                            JOIN
                               acr_master am
                            ON (TRIM (acr_no) = p_acr_no)
                         LEFT OUTER JOIN
                            payment_master a
                         ON (payment_type = 'ECC' AND TRIM (acr_no) = p_acr_no)
                      LEFT OUTER JOIN
                         payment_master b
                      ON (payment_type = 'RP' AND TRIM (acr_no) = p_acr_no)
                   LEFT OUTER JOIN
                      payment_master c
                   ON (payment_type = 'AR' AND TRIM (acr_no) = p_acr_no);
    END;
    /
    
    SQL> show error
    Errors for PROCEDURE SP_VALIDATE3:
    
    LINE/COL ERROR
    -------- -----------------------------------------------------------------
    6/5      PL/SQL: SQL Statement ignored
    13/80    PL/SQL: ORA-00918: column ambiguously defined
    SQL>
    
    --In the below code after keeping alias names of the tables, the procedure compiled successfully 
    
    /* Formatted on 06/06/2013 6:06:58 PM (QP5 v5.126.903.23003) */
    CREATE OR REPLACE PROCEDURE sp_Validate3 (p_acr_no      IN     VARCHAR2,
                                              p_recordset      OUT sys_refcursor)
    AS
    BEGIN
       OPEN p_recordset FOR
          SELECT   am.acr_no AS acr_no,
                   'TEST' AS lastname,
                   NVL (a.or_no, '0') AS ecc_orno,
                   NVL (b.or_no, '0') AS rp_orno,
                   NVL (c.or_no, '0') AS ar_orno
            FROM               tab t
                            JOIN
                               acr_master am
                            ON (TRIM (acr_no) = p_acr_no)
                         LEFT OUTER JOIN
                            payment_master a
                         ON (a.payment_type = 'ECC' AND TRIM (a.acr_no) = p_acr_no)
                      LEFT OUTER JOIN
                         payment_master b
                      ON (b.payment_type = 'RP' AND TRIM (b.acr_no) = p_acr_no)
                   LEFT OUTER JOIN
                      payment_master c
                   ON (c.payment_type = 'AR' AND TRIM (c.acr_no) = p_acr_no);
    END;
    /
    
  • Why thr r 2 options is/during the creation of procedure or function

    why there are 2 options avialable IS/AS creating procedure or function?

    As

    create or replace procedure (NUMBER p_nbr) AS

    create or replace procedure (NUMBER p_nbr) IS

    tried both options has observed the same result...

    Thr is a differnce between IS and YOU

    SShubhangi wrote:
    why there are 2 options avialable IS/AS creating procedure or function?

    As

    create or replace procedure (NUMBER p_nbr) AS

    create or replace procedure (NUMBER p_nbr) IS

    tried both options has observed the same result...

    Thr is a differnce between IS and YOU

    On the technical side... There is no difference.
    With respect to the English language, it would depend on what you describe...

    [do something] As follows...
    [this item] IS defined as...

    So in terms of programming language, we could say that:

    create or replace procedure test (p_nbr NUMBER) AS...
    

    reads most naturally as

    create or replace procedure test (p_nbr NUMBER) IS...
    

    It's 'action' to create or replace something.

    Whereas, for example, a procedure in a package...

    procedure test (p_nbr NUMBER) IS...
    

    is clearer than

    procedure test (p_nbr NUMBER) AS...
    

    because it's stating what IS the procedure, rather than the Act of creation. (the packaging itself be "would create package... AS")

    Regarding Oracle's good, he doesn't care, they are interchangeable. For me personally, I like to use the one that makes it easy to read.

  • Caveats in the PL/SQL procedure

    Could Hi you help me with this procedure?
    CREATE OR REPLACE
    PROCEDURE last_analyzed_idx(
        own1 IN VARCHAR,
        part IN VARCHAR)
    AS
      j NUMBER;
      f UTL_FILE.FILE_TYPE;
      str VARCHAR(120);
      CURSOR analyzed_cur
      IS
        SELECT t.table_name table_name,
          i.INDEX_NAME INDEX_NAME,
          i.INDEX_TYPE INDEX_TYPE,
          i.num_rows idx_rows,
          t.num_rows tab_rows,
          t.last_analyzed tab_last,
          i.last_analyzed idx_last,
          i.LEAF_BLOCKS LEAF_BLOCKS,
          i.DISTINCT_KEYS DISTINCT_KEYS,
          SUM(s.bytes)/1024/1024 S_MB,
          SUM(s.blocks) S_BLK
        FROM dba_tables t,
          dba_indexes i,
          dba_segments s
        WHERE t.table_name    = i.table_name
        AND t.owner           = i.TABLE_OWNER
        AND t.owner           = own1
        AND t.PARTITIONED     ='NO'
        AND s.segment_name    = i.index_name
        AND s.partition_name IS NULL
        GROUP BY t.table_name,
          i.INDEX_NAME,
          i.INDEX_TYPE,
          i.num_rows,
          t.num_rows,
          t.last_analyzed,
          i.last_analyzed,
          i.LEAF_BLOCKS,
          i.DISTINCT_KEYS;
      CURSOR analyzed_cur1
      IS
        SELECT t.table_name table_name,
          i.INDEX_NAME index_name,
          i.partition_name part_name,
          i.num_rows index_rows,
          t.num_rows table_rows,
          t.last_analyzed tab_last,
          i.last_analyzed idx_last,
          i.LEAF_BLOCKS leaf_blocks,
          i.DISTINCT_KEYS distinct_keys,
          SUM(s.bytes)/1024/1024 S_MB ,
          SUM(s.blocks) S_BLK
        FROM dba_tab_partitions t,
          dba_ind_partitions i,
          dba_segments spartition_name
        WHERE t.table_name IN
          (SELECT table_name FROM dba_indexes WHERE index_name = i.index_name
          )
      AND t.PARTITION_POSITION = i.PARTITION_POSITION
      AND t.table_owner        = i.index_OWNER
      AND t.table_owner        = own1
      AND s.segment_name       = i.index_name
      AND s.partition_name     = i.partition_name
      GROUP BY t.table_name,
        i.INDEX_NAME,
        i.partition_name,
        i.num_rows,
        t.num_rows,
        t.last_analyzed,
        i.last_analyzed,
        i.LEAF_BLOCKS,
        i.DISTINCT_KEYS;
    BEGIN
      IF part='YES' THEN
        f   := UTL_FILE.FOPEN('DIR','last_analyzed_indexes_'||own1||'_'||part,'W',1000);
        FOR j IN analyzed_cur1
        LOOP
           str:=j.table_name||','||j.INDEX_NAME||','||j.part_name||','||j.index_rows||','||j.table_rows||','|| j.tab_last||','||j.idx_last||','||j.LEAF_BLOCKS||','||j.DISTINCT_KEYS||','|| j.S_MB||','|| j.S_BLK;
          UTL_FILE.PUT_LINE(f,str);
        END LOOP;
        UTL_FILE.FCLOSE(f);
      ELSE
        f := UTL_FILE.FOPEN('DIR','last_analyzed_indexes_'||own1,'W',1000);
        FOR j IN analyzed_cur
        LOOP
          str:=j.table_name||','||j.INDEX_NAME||','||j.index_type||','||j.idx_rows||','||j.tab_rows||','|| j.tab_last||','||j.idx_last||','||j.LEAF_BLOCKS||','||j.DISTINCT_KEYS||','|| j.S_MB||','|| j.S_BLK;
          UTL_FILE.PUT_LINE(f,str);
        END LOOP;
        UTL_FILE.FCLOSE(f);
      END IF;
    END last_analyzed_idx;
    Errors:
    NAME                                     TYPE                    LINE   POSITION                            TEXT
    LAST_ANALYZED_IDX     PROCEDURE          62     7     PL/SQL: ORA-00904: "S"."PARTITION_NAME": invalid identifier     ERROR     0
    LAST_ANALYZED_IDX     PROCEDURE          41     5     PL/SQL: SQL Statement ignored     ERROR     0
    LAST_ANALYZED_IDX     PROCEDURE          78     12     PLS-00364: loop index variable 'J' use is invalid     ERROR     364
    LAST_ANALYZED_IDX     PROCEDURE          78     7     PL/SQL: Statement ignored     ERROR     0
    Thank you

    FROM dba_tab_partitions t,.
    dba_ind_partitions I,.
    dba_segments spartition_name

    "BOLD" is the source of the problem.

  • Optimization of the insert/update procedure

    My requirement is to insert into the TEST table using the select query.
    If the new record found then insert into the table
    Otherwise update the table with the procedure in the p_dt and p_bno parameters.
    I've written as below. It works fine,
    But you want to optimize the code.
    Could you help me in this.
    create table test (o_id number,rt_cd varchar2(11),fator varchar2(11),l_ind varchar2(11),
    up_dt date,bc_no number)
    
    
    create or replace procedure proc_test ( P_dt DATE ,P_bno NUMBER)
     IS
      cursor c_nm is
        select distinct a.id vo_id,b.r_cd vrt_cd,null vfator, 'C' vl_ind,p_dt up_dt,p_bno bc_no
         from test1 a,test2 b
           where a.id =b.id
    BEGIN
      BEGIN
       insert into test (
         o_id,rt_cd,fator,l_ind,up_dt,bc_no)
       select * from (select distinct a.id vo_id,b.r_cd vrt_cd,null vfator, 'C' vl_ind,p_dt up_dt,p_bno bc_no
         from test1 a,test2 b
           where a.id =b.id) T
        where not exists (select 1 from test t1
                           where T.o_id = t1.o_id
                             and T.r_cd = t1.r_cd );
        commit;
       Exception when others then
         DBMS_OUTPUT.PUT_LINE(' In Error'|||| SQLCODE|| '-'|| SQLERRM);
     
      for i in c_cur loop
       update test 
        set o_id =i.vo_id ,rt_cd =i.vrt_cd,fator =i.vfator ,l_ind =i.vl_ind,up_dt=p_dt ,bc_no =p_bno
        where o_id=i.vo_id and rt_cd =i.vrt_cd ;
       end loop;
      commit;
     exception when others then
         DBMS_OUTPUT.PUT_LINE(' Main Error'|||| SQLCODE|| '-'|| SQLERRM);
     end;
    Could you help me in this.
  • Access to the views dba procedure

    Hi all
    Using Oracle 10.2.0.5 on 64-bit RedHat, I meet a strange thing while trying to do a procedure: I can access dba_tablespace from sqlplus, but I can't leave a procedure...

    This one works very well: Select tablespace_name dba_tablespaces;

    But it gives me the error:
    CREATE OR REPLACE PROCEDURE show_ts IS
    BEGIN
    FOR rec IN (SELECT FROM dba_tablespaces) *.
    LOOP
    NULL;
    END LOOP;
    END show_ts;

    * 4/14 PL/SQL: statement ignored SQL *.
    * 4/28 PL/SQL: ORA-00942: table or view does not exist *.

    My user has DBA privileges and session_privs, I see those:
    SELECT ANY DICTIONARY
    SELECT ANY TABLE

    dba_tablespaces seems to be part of the SYS schema, but change my request from dba_tablespaces to sys.dba_tablespaces gives me the same error...
    I also have the same error with dba_users, but again, this works very well the procedure...

    Does anyone know why?
    Thank you!

    Hello

    PL/SQL disables roles. In order to access a table inside PL/SQL code you need to grant SELECT directly on the table.

    Best regards
    Nikolai

  • Accept user entries in the pl/sql procedure

    Someone would want to explain to me how can I accept user entries in the following stored procedure
    CREATE OR REPLACE PROCEDURE calsal
    IS
       CURSOR maxsal
       IS
          SELECT *
            FROM emp;
    
       max_sal   emp.sal%TYPE;
    BEGIN
       SELECT MAX (sal)
         INTO max_sal
         FROM emp;
    
       FOR i IN maxsal
       LOOP
          IF i.sal = max_sal
          THEN
             DBMS_OUTPUT.put_line (   ' Maximum salary plus bonus of '
                                   || i.empno
                                   || ' is '
                                   || (i.sal + i.sal * 0.5)
                                  );
          END IF;
       END LOOP;
    END;
    The above program works very well, but if I want to keep a condition WHERE No. 12 online which is WHERE deptno: = & deptno... My logic does not work with just like that. So, can anyone tell me what can I do to accept a number of the user Department.

    Thanks in advance!

    And what happens if there are several employees who earn max or min. I'll assume that all get award-winning correspondent. I will also assume that if all employees of the Department get the same salary (so they are min and max), they will get. 5% bonus:

    CREATE OR REPLACE
      PROCEDURE calsal(p_deptno number)
        IS
            CURSOR maxsal
              IS
                SELECT  empno,
                        CASE
                          WHEN cnt = 1 THEN SAL * 1.005
                          WHEN rank_max = 1 THEN SAL * 1.005
                          WHEN rank_min = 1 THEN SAL * 1.1
                        END sal_and_bonus
                  FROM  (
                         SELECT  empno,
                                 COUNT(DISTINCT SAL) OVER() cnt,
                                 RANK() OVER(ORDER BY SAL DESC) rank_max,
                                 RANK() OVER(ORDER BY SAL) rank_min,
                                 sal
                           FROM  emp
                           WHERE deptno = p_deptno
                        )
                 WHERE rank_max = 1
                    OR rank_min = 1;
        BEGIN
            FOR v_rec IN maxsal LOOP
              DBMS_OUTPUT.put_line (   ' Salary plus bonus of '
                                   || v_rec.empno
                                   || ' is '
                                   || v_rec.sal_and_bonus
                                  );
            END LOOP;
    END;
    /
    

    SY.

    Published by: Solomon Yakobson August 1, 2011 13:50

  • Call the PL/SQL procedure with different parameters?

    I use PL/SQL for web development. I have a page of PL/SQL which collects information and returns the user off site with one return url (another PL/SQL procedure).

    I have the return procedure with every documented return variable (default null) in order to always take the return. However, there are (reported... cannot reproduce because of the nature of the business) cases where a 404 error is returned because of the incompatibility of parameter.

    Is it possible to proceed regardless of the parameters? Someone at - it suggestions?

    Thank you!

    user2960509 wrote:

    My problem is that they sometimes send back of settings that do not match what I expect.

    Use the interface "+ flexible +" mod_plsql - see the Oracle® HTTP Server mod_plsql user's Guide for the documented details.

    The signature of the procedure parameter is as follows (it is called by mod_plsql using tables of name value pairs):

    create or replace procedure Scott.MyWebProc( name_array owa.vc_arr, value_array owa.vc_arr) is
    ...
    

    In your code, you just browse the berries to get the name values passed query string. You can even filled an associative array in your code (a table indexed by string and no number, where the index string represents the name of param)-this approach can make it pretty easy for the code make reference to a parameter, with little effort on your part to provide an interface to query by name for code to get the value of a parameter name.

    To enable the flexible (aka parameter 2) call interface, precede the call to web with an exclamation character. For example

    http://my-webserbver.my-domain.com/pls/dad/!scott.mywebproc?name-1=val-1&name-2=val-2..,name-n=val=n
    
  • Ampersand substitution in create or replace procedure statement

    Hi guys,.

    I wonder why my replacement ampersand works in a create or replace statement of the stored procedure.

    CREATE OR REPLACE PROCEDURE UPDATE_DIM_SALES AS


    Cancel the DEFINITION DimSales;
    Cancel the DEFINITION FactTable;
    SET DimSales = 'TESTTAB;
    SET FactTable = myfact;


    BEGIN
    *...*

    Error (5,20): PLS-00103: encountered the symbol "=" when expected as follows: =. (@ %; not null default range character)


    If I assign the value with: = I get the error "invalid table" thereafter for the statemnt of INSERTION:

    CREATE OR REPLACE PROCEDURE UPDATE_DIM_SALES AS


    Cancel the DEFINITION DimSales;
    Cancel the DEFINITION FactTable;
    SET DimSales: = ' x 2';
    SET FactTable: = ' x 1';


    BEGIN
    INSERT INTO & DimSales (column1, column2,...)

    Why not the ampersand substitution work in a stored procedure?

    No problem with the carpet. Display. But you don't need to create and drop them again. Simply create a time and refresh just before departure if necessary. I expect the creation and updating of points of view is fast comparibly. Also access to the seller_id should be indexed.

    Your original pl/sql block is slow due to several reasons. One might be that you agree to each line. Engage is an extremely slow process. He avoid as much as possible. Another part might be that you make all the changes of context of pl/sql. The obvious way to avoid this would be to BULK operations (bulk-select + Forall). It is not so difficult. The size of the collection must be limited to a lower amount.

    Best way would be to measure the performance of pl/sql parts using a tool such as DBMS_PROFILER. Then you can decide what part is slow and must be granted.

    A simple insert could be faster. Did you test that?

    example not tested

    INSERT /*+append */
    INTO &DimSales (K_Sales,REG,BVL,DS, VS,RS,GS,VK)
    (SELECT trim(leading '0' from RS||GS) ,REG, BVL,DS, VS,RS,GS,VK
    from &FactTable f
    join &testsales s on f.SellerNo =s.Seller_No;
    
    commit;
    

    You can run the other issues, but this is generally the fastest approach. Try to avoid the separate if possible. This requires a sort and will slow down the insert of a lot.

    Published by: Sven w. on November 30, 2010 17:10

Maybe you are looking for

  • Ports USB Hi-Speed on Satellite P200-140

    I use a P200-140 and it was announced as having USB 2.0 ports, but whenever I have something to connect to USB ports, the message appears: this device can perform faster if plug you it into a USB Port of speed Hi. This laptop is supposed to have 4 hi

  • Buy Microsoft Office home and Student 2007

    I bought the Microsoft Office Home and Student 2007 for my laptop to buy full license. I received the confirmation email. The money has been debited to my credit card. I was able to download the program on the internet from Microsoft. Everything work

  • Intermittent problem "USB not detected" Genius Traveler Laser 315 mouse.

    Original title: the USB mouse not detected ------------------------------------------------------------------------------------------------------------------------------------------------- My problem is this: I have a Genius Traveler Laser 315 mouse

  • Preparation of files for Server BES (to be pushed to employees)

    Hello What are the exact steps I must follow to gte my application on Server BES of the customer so that they can push their employees? I know how to do OTA from our server, but have never tried on a person BES. Is it just the COD and ALX files, I ne

  • Organize your desktop automatically by DATE Photos

    HelloI have a small concert photo editing that come to me (by email), all day, like a daily assignment. It can be of 3 photos, it may be 50. But they all get made and sent this day there. I have... 2 computers. We are old and for my photography only