ERROR WITH IMMEDIATE EXECUTION (ORA-00936)

Hello

I am trying to implement this statement but I get this error message (ORA-00936)

RUN IMMEDIATELY 'REMOVE'. V_TABLE_DETAIL_NAME | ' WHERE ' | V_COLUMN_DETAIL_NAME |' = ' | TO_CHAR (P_DEL_VAL);



Kind regards

Hello

I assume you are using below in the database. Try this...

EXECUTE IMMEDIATE 'DELETE FROM '||V_TABLE_DETAIL_NAME||' WHERE '||V_COLUMN_DETAIL_NAME ||' = '''||TO_CHAR(P_DEL_VAL)||'''';

-Clément

Tags: Oracle Development

Similar Questions

  • Error with immediate execution in Oracle 10 g of form

    Hi all

    I use Oracle Forms 10 g. I have a remote database and I've created a database link to the db. Now, I need to update some data in this database from my system using forms. To do this, I wrote a statement such as:

    run immediately "SELECT GLH_CODE_SEQ. NEXTVAL@WB IN '. GLHCODE | ' THE DOUBLE '.   (glh_code_seq is a sequence in remote db)

    but his error showing as error 591: this feature is not supported in programs on the client side.

    then I changed the statement

    forms_ddl ("SELECT GLH_CODE_SEQ. NEXTVAL@WB IN '. GLHCODE | (' DOUBLE ');

    Now that the error is not burst but the variable is not under any value.

    The same statement (forms_ddl) works fine on sql * more.

    Someone please help me if I do something wrong or suggest if anything to do about it.

    Thank you

    Sandeep

    write your code in the database accordingly.  call function of database forms.

  • Changing table via the package with immediate execution (problem)

    Hello

    I have a unusual problem. I have a package that contains the procedure that via execute immediate statement, creates a table on which he performs different actions for example:

    -alter table some_owner.dummy_table noparallel

    -create index some_owner.idx_name on some_owner.dummy_table (column)...

    But I only managed to run move and create synonym table/public via execute immediate statement. Actions as alter table and create index fails with error ORA-01031: insufficient privileges.

    Note If call these commands outside the package (a simple script) this all done OK.

    I found a way, where I set the AUTHID CURRENT_USER command create package statement. In this way all the actions executed OK.

    I wonder why I can't change the table via the package with immediate execution on a table that is in the tablespace "SOME_TABLESPACE" and the title of owner "SOME_OWNER", without putting the AUTHID command on the package.

    There must be a problem why a package cannot change the table which is owned by the user 'SOME_OWNER '.

    All useful responses would be appreciated.

    I have a unusual problem.

    No - you don't have. This question has been answered SEVERAL times on this forum and others.

    But I only managed to run move and create synonym table/public via execute immediate statement. Actions as alter table and create index fails with error ORA-01031: insufficient privileges.

    OK - your username doesn't have privileges to do these operations or only received privileges through roles.

    Roles are DISABLED in named PL/SQL blocks that use of the AUTHOR's rights.

    Note If call these commands outside the package (a simple script) this all done OK.

    I found a way, where I set the AUTHID CURRENT_USER command create package statement. In this way all the actions executed OK.

    Of course - the roles are NOT disabled in named PL/SQL blocks that use the rights of the APPELLANT or in anonymous blocks.

    I wonder why I can't change the table via the package with immediate execution on a table that is in the tablespace "SOME_TABLESPACE" and the title of owner "SOME_OWNER", without putting the AUTHID command on the package.

    Well now you know!

  • Procedure failed with ORA-01403, associated with immediate execution, captured

    This procedure compiles without error. Its purpose is to copy the sequence of one schema to another object. After it failed with ORA-01403, I added exception code of capture (see the comments in the code).

    A few notes:

    1. I started the proceedings with exec copy_sequence ('ADDRESS_SEQ', 'SST', 'TEST1');

    2. the first sql string is built correctly since I can see in the console output:

    Select last_number in the all_sequences where sequence_owner = upper('TSS') and upper('ADDRESS_SEQ') = sequence_name

    I can run this SQL command, and returns a real value;

    Here is the procedure

    SET SERVEROUTPUT ON;

    create or replace procedure copy_sequence (seq VARCHAR2, prod_schema VARCHAR2, VARCHAR2 test_schema)

    as

    Val number (21);

    s_sql varchar2 (200);

    Start

    s_sql: = ' select last_number in the all_sequences where sequence_owner = upper('''|| prod_schema ||'') ') and sequence_name = upper('''||) Seq | " ')';

    -immediate' select last_number in the Vale of all_sequences where sequence_owner = upper('''|| prod_schema ||'') ') and sequence_name = upper('''||) Seq | " ')';

    Dbms_output.put_line ('sql 1 ' | s_sql);

    execute immediate s_sql in val;  ---!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! The code does not work here!

    Dbms_output.put_line ('val' |) Val);

    s_sql: = 'delete the sequence'. test_schema |'. ' || FF.;

    Dbms_output.put_line ('sql 2 ' | s_sql);

    -execution immediate s_sql;

    s_sql: = 'create the sequence'. test_schema |'. ' || Seq |' minvalue maxvalue 1 999999999999999999999 begin by ' | Val | 'increment of 1';

    Dbms_output.put_line ('sql 3 ' | s_sql);

    -execution immediate s_sql;

    -Add the following after procedure thown ORA-01403: no data found

    exception when TOO_MANY_ROWS then DBMS_OUTPUT.put_line ('TOO_MANY_ROWS error');

    When NO_DATA_FOUND then DBMS_OUTPUT.put_line ('error NO_DATA_FOUND');

    While some other then raise_application_error (-20011, "Unknown Exception in this procedure");

    end;

    /

    Hoek wrote:

    The user (no SYSTEM, SYS, and SYSTEM are special, you should not use them unless you have TO) execution of the procedure must have the necessary privileges granted directly, bypassing a role...

    ??? There is nothing special about SYS or SYSTEM in what concerns them stored procedures. SYS by default is granted directly SELECT ANY SEQUENCE, so it does not work for the owner of MS by SYS. SYSTEM is therefore not:

    Scott@pdborcl12 > create sequence s;

    Order of creation.

    Scott@pdborcl12 > create or replace
    2 procedure system.p1
    3 is
    number of v_last_value 4;
    5. start
    6. Select last_number
    7 in v_last_value
    8 of all_sequences
    9 where sequence_owner = 'SCOTT '.
    10 and s = sequence_name ';
    11 end;
    12.

    Created procedure.

    Scott@pdborcl12 > system.p1 exec.
    BEGIN system.p1; END;

    *
    ERROR on line 1:
    ORA-01403: no data found
    ORA-06512: at "SYSTEM. "P1", line 5
    ORA-06512: at line 1

    Scott@pdborcl12 > grant select on s to the system;

    Grant succeeded.

    Scott@pdborcl12 > system.p1 exec.

    PL/SQL procedure successfully completed.

    Scott@pdborcl12 >

    SY.

  • error on immediate execution

    Hello
    Can you help me with this query? My code is
     declare
        cursor c1
        is
        select table_name, column_name
        from all_tab_columns
        where owner = 'COCO';
        type type_columns is table of varchar2(500)
        index by pls_integer;
        my_type type_columns;
        v_others varchar2(100);
        v_sql_stmt varchar2(5000);
        v_ad_pres varchar2(10) := 'ad_pres';
     begin
        for i in c1 loop
                v_sql_stmt := 'select '||i.column_name||' into my_type '
                                ||' from '||i.table_name
                                ||' where '|| lower(i.column_name) ||' = '||q'[']'||'ad_pres'||q'[';]';
                --dbms_output.put_line(v_sql_stmt);
             execute immediate v_sql_stmt;
        end loop;
     end;
     /
    and the error:
    Select code from my_type from PIVOT_TEST where id = 'ad_pres ';
    declare
    *
    ERROR on line 1:
    ORA-00911: invalid character
    ORA-06512: at line 19

    Thank you

    Thatz a very rough way to find a value in a column of other tables, hope it's just for debugging something, and not a requirement of the company.
    Here's a piece of code I could come up with (not tested and not the best but...)

    declare
      lv_qry    varchar2(1000) := null;
      ln_cnt    number := 0;
      v_ad_pres varchar2(10) := 'ad_pres';
    begin
      for i in (select utc.table_name, utc.column_name
                  from user_tab_columns utc
                 where utc.DATA_TYPE = 'VARCHAR2'
                 order by utc.table_name, utc.column_id)
      loop
        lv_qry := 'select count('||i.column_name||') from '||i.table_name||' where '||upper(i.column_name)|| ' = '''||v_ad_pres||'''';
        --dbms_output.put_line(lv_qry);
    
        execute immediate lv_qry into ln_cnt;
    
        if ln_cnt > 0 then
           dbms_output.put_line(i.table_name||' : '||i.column_name);
        end if;
      end loop;
    end;
    

    In this way, you can also avoid your mistakes NO_DATA_FOUND.

  • Automated row Fetch on Table with synonym causes ORA-00936: lack of expr.

    Hello!

    I have a form that displays a database record.
    To select which record I want to see, I drop-down box that returns the primary key.

    The elements in the form are populated by a standard automated row Fetch.

    Everything works well, even if I replace the table with a point of view on this table or replace it with a local view of a view in a different schema. (I do this by changing the name of 'table' in the FRA process.)

    When I define a synonym on the table or the view I get

    ORA-06550: line 1, column 17: PL/SQL: ORA-00936: lack of expression ORA-06550: line 1, column 9: PL/SQL: statement ignored

    -which is a complete mystery to me.

    Does anyone have a tip for me?
    Many thanks in advance,
    Sabine


    If you want to see the effect (login: demo/demo):
    Table:
    [http://apex.oracle.com/pls/otn/f?p=17361:3 | http://apex.oracle.com/pls/otn/f?p=17361:3]
    Synonym:
    [http://apex.oracle.com/pls/otn/f?p=17361:4 | http://apex.oracle.com/pls/otn/f?p=17361:4]

    Sabine,

    What a view of the synonym?

    See Re: Automated line Fetch of Public synonym error to learn more.

    Greg

  • Help with IMMEDIATE EXECUTION and drop

    Hi all

    We strive to create a procedure to do the following:

    * We have in the database of the tables named as C$ _XXXXXXXXX
    * We want to drop some of these tables with a common prefix (Fe C$ _1203101)

    DECLARE
    v_sql VARCHAR2 (300);
    BEGIN
    SELECT 'DROP TABLE ODISTAG.' | TABLE_NAME | « ; » IN v_sql FROM USER_TABLES WHERE TABLE_NAME LIKE ' C$ _1203101% ';
    EXECUTE IMMEDIATE v_sql;
    END;

    But we are getting this error:


    Error report:
    ORA-00911: invalid character
    ORA-06512: at line 5
    00911 00000 - "invalid character".
    * Cause: identifiers may not start with any character other than ASCII
    letters and numbers. $# _ are allowed after the first
    character. May contain identifiers surrounded by doublequotes
    any character other than a quotation mark. Other quotes
    (q' #... #') cannot use spaces, tabs or as carriage returns
    delimiters. For all other settings, consult the SQL language
    Reference manual.
    * Action:


    Any help on this please?

    Thank you!

    You don't need the semicolon.

  • Function in pipeline with immediate execution

    Hello Experts,

    I created a tube lined function to run immediately, cause of sub condition;
    (1) columns where clause dynamically.
    (2) I want to know the data stored in above the dynamic columns.
    (3) I want to use in the report, so I don't want to insert it into a table.

    I have created a TYPE, then thanks to run immediately, I got the query and the result of this query will be stored in the TYPE.
    But when you call the function I get
    ORA-00932: inconsistent data types: expected - was -.

    Below is my function and type, let me know I am wrong and it is my correct logic.
    CREATE OR REPLACE TYPE OBJ_FPD AS OBJECT
                      (LOW_PLAN_NO VARCHAR2 (40),
                       FPD VARCHAR2 (5),
                       SERIAL_NO NUMBER,
                       CEDIA_CODE VARCHAR2 (2),
                       DT DATE);
    ----                                      
    CREATE OR REPLACE TYPE FPD_TBL_TYPE AS TABLE OF OBJ_FPD;
    ----
    CREATE OR REPLACE FUNCTION FUNC_GET_FPD_DATE (P_LOW_PLAN_NO    VARCHAR2,
                                                  P_CEDIA_CODE     VARCHAR2,
                                                  P_SERIAL_NO      NUMBER)
       RETURN FPD_TBL_TYPE
       PIPELINED
    AS
       CURSOR C1
       IS
              SELECT 'FPD' || LEVEL TBL_COL
                FROM DUAL
          CONNECT BY LEVEL <= 31;
    
       V_STR        VARCHAR2 (5000);
    
       V_TBL_TYPE   FPD_TBL_TYPE;
    BEGIN
       FOR X IN C1
       LOOP
          V_STR :=
                'SELECT A.low_PLAN_NO,
               A.FPD,
               A.SERIAL_NO,
               A.cedia_code,
               TO_DATE (
                     SUBSTR (FPD, 4, 5)
                  || ''/''
                  || TO_CHAR (C.low_PLAN_PERIOD_FROM, ''MM'')
                  || ''/''
                  || TO_CHAR (C.low_PLAN_PERIOD_FROM, ''RRRR''),
                  ''DD/MM/RRRR'')
                  DT FROM ( SELECT low_PLAN_NO, '
             || ''''
             || X.TBL_COL
             || ''''
             || ' FPD, '
             || X.TBL_COL
             || ' SPTS, SERIAL_NO, cedia_code FROM M_low_PLAN_DETAILS WHERE NVL('
             || X.TBL_COL
             || ',0) > 0 AND SERIAL_NO = '
             || P_SERIAL_NO
             || ' AND cedia_code = '
             || ''''
             || P_CEDIA_CODE
             || ''''
             || ' AND low_PLAN_NO = '
             || ''''
             || P_LOW_PLAN_NO
             || ''''
             || ') A,
               M_low_PLAN_DETAILS B,
               M_low_PLAN_MSTR C
         WHERE     A.low_PLAN_NO = B.low_PLAN_NO
               AND A.cedia_code = B.cedia_code
               AND A.SERIAL_NO = B.SERIAL_NO
               AND B.low_PLAN_NO = C.low_PLAN_NO
               AND B.CLIENT_CODE = C.CLIENT_CODE
               AND B.VARIANT_CODE = C.VARIANT_CODE
    CONNECT BY LEVEL <= SPTS';
    
          EXECUTE IMMEDIATE V_STR INTO V_TBL_TYPE;
    
          FOR I IN 1 .. V_TBL_TYPE.COUNT
          LOOP
             PIPE ROW (OBJ_FPD (V_TBL_TYPE (I).LOW_PLAN_NO,
                                V_TBL_TYPE (I).FPD,
                                V_TBL_TYPE (I).SERIAL_NO,
                                V_TBL_TYPE (I).CEDIA_CODE,
                                V_TBL_TYPE (I).DT));
          END LOOP;
       END LOOP;
    
       RETURN;
    EXCEPTION
       WHEN OTHERS
       THEN
          RAISE_APPLICATION_ERROR (-20000, SQLCODE || ' ' || SQLERRM);
          RAISE;
    END;
    Waiting for your point of view.

    Kind regards

    ORA Ash wrote:
    This result is coming as FPD4 has 2 as a value, then there will be two records to the result with column date (DT).
    Your query is perfect only thing is that I have to go to connect the name of the column immediately above as below;

    AND FPD = 'FPD14'
    CONNECT BY LEVEL <= SPTS;
    

    So, if possible, please let me know is there a better way to spend the column name, to get the correct data.

    Well, we don't have any example for working with information and the expected results of these data in the example, then it is very difficult for us to understand exactly what is affected by the query.

    What happens if you delete the connection by clause? Why must you connect him by clause in your query? It is not clear what you include that for (like I said).

  • problem with immediate execution

    Hi all
    I use 10g db.
    I wrote a database procedure. When I call front end (forms 6i) I get the error message
    ORA-00911: invalid character
    ORA-06512:at schema.update_tables line 10
    and here is my procedure
    create or replace procedure update_tables is
    BEGIN
    declare
    lstring varchar(100) := 'update ';
    lvalue varchar2(10) := 'LVM';
    begin
    for i in (select table_name,column_name from user_tab_columns where column_name like '%_COMPANY')
    loop
    lstring := lstring||i.table_name || ' set '||i.column_name || '= ' ||  chr(39) || lvalue || chr(39) || ' ; ' ;
    execute immediate lstring;
    end loop;
    end;
    END;
    /
    What could be gone bad?

    Thank you...

    Published by: GD on May 19, 2012 21:36

    Is chr (39) a quote on your system?

    Did you try my example or something else?
    (I've tried before, I posted it).

    Here is a complete example.
    I changed it to my previous post to use a variable binding to remove the tank (39).
    It will also help if lvalue contains a quote.

    create table hutest (my_company varchar2(30));
    
    Table created.
    
    insert into hutest values('djhg');
    
    1 row created.
    
    create or replace procedure update_tables is
    BEGIN
    declare
    lstring varchar(100) := 'update ';
    lvalue varchar2(10) := 'LVM';
    begin
    for i in (select table_name,column_name from user_tab_columns where column_name like '%_COMPANY')
    loop
    lstring := lstring||i.table_name || ' set '||i.column_name || '= :val';
    dbms_output.put_line(lstring);
    execute immediate lstring using lvalue;
    end loop;
    end;
    END;
    /
    
    Procedure created.
    
    set serveroutput on size 20000
    
    exec update_tables
    update HUTEST set MY_COMPANY= :val                            <------ From dbms_output
    
    PL/SQL procedure successfully completed.
    
    select * from hutest;
    
    MY_COMPANY
    ------------------------------
    LVM
    
    1 row selected.
    

    Published by: HU 2012-05-20 08:59

  • Update not available with immediate execution?

    Hello;

    When I run this code, I get no error (s) (and I see the dbms_output [UPDATE]) but the update is not effective:
    WHENEVER OSERROR EXIT OSCODE
    set head off
    set scan on
    set verify off
    set flush off
    set feedback off
    set linesize 410
    set pagesize 0
    set serveroutput on size 1000000
    
    DECLARE
    ...
    BEGIN
    collection := get_tables_with_column('REF_PLAN');
    
    ...
    IF ... THEN
    dbms_output.put_line('[UPDATE]');
         EXECUTE IMMEDIATE 'UPDATE ' || collection(i) ||' SET REF_PLAN=:quatre_champ WHERE FAM_SIM=:prem_champ AND PRISE_V1P=:deux_champ AND BROCHE_V1P=:trois_champ' USING quatre_champ,prem_champ,deux_champ,trois_champ;
    COMMIT;
    ...
    What is the problem? Thanks for your help, regards.

    Well, add:

    dbms_output.put_line(SQL%ROWCOUNT);

    after EXECUTE IMMEDIATE. Most likely update targets 0 lines. If so, print and check the prem_champ, the deux_champ, the values of trois_champ.

    SY.

  • Help with IMMEDIATE EXECUTION

    Hello people can help you Execute Immediate below set out? I'm a little confused on how to use it.

    #!/bin/sh
    
    sqlplus -s ${DB_USER} << EOF
    
    
    SELECT 'ALTER TABLE PANDORA.'||table_name||' DROP PARTITION '||partition_name||';'
    FROM user_tab_partitions
    WHERE TABLE_NAME IN ('SIU', 'NGME')
    AND partition_name = (SELECT MIN(partition_name) 
                          FROM user_tab_partitions
                          WHERE TABLE_NAME IN ('NGME')
                          AND partition_name <> 'DUMMY'
                          );
                                      
    SELECT 'ALTER TABLE PANDORA.'||table_name||' ADD PARTITION WEEK'||TO_CHAR(TO_NUMBER(REPLACE(partition_name,'WEEK'))+1)||';'
    FROM user_tab_partitions
    WHERE TABLE_NAME IN ('SIU', 'NGME')
    AND partition_name = (SELECT MAX(partition_name) 
                          FROM user_tab_partitions
                          WHERE TABLE_NAME IN ('NGME')
                          AND partition_name <> 'DUMMY'
                          );
       
    SELECT 'ALTER INDEX PANDORA.IDX_SERVED_IMSI MODIFY PARTITION '||partition_name||' UNUSABLE;'
    FROM user_tab_partitions
    WHERE TABLE_NAME = 'SIU'
    AND partition_name = (SELECT MAX(partition_name) 
                          FROM user_tab_partitions
                          WHERE TABLE_NAME IN ('NGME')
                          AND partition_name <> 'DUMMY'
                          );
    
    EXIT
    EOF 
    

    Thank you in advance.

    Something like

    BEGIN

    I'm IN)

    SELECT table_name, nom_partition

    Of user_tab_partitions

    WHERE TABLE_NAME IN ("SIU", "NGME")

    AND nom_partition = (SELECT MIN (partition_name)

    Of user_tab_partitions

    WHERE TABLE_NAME IN ("NGME")

    AND nom_partition <> 'DUMMY '.

    )

    ) LOOP

    RUN IMMEDIATELY "ALTER TABLE PANDORA." | i.table_name |' DROP PARTITION '. i.PARTITION_NAME;

    END OF LOOP:

    END;

    NOT TESTED.

  • Need help with ORA-00936: lack of expression

    11.2.0.3
    desc killsessionlog
     Name                                                  Null?    Type
     ----------------------------------------------------- -------- --------------
     KILLTIME                                              NOT NULL DATE
     USERNAME                                              NOT NULL VARCHAR2(30)
     SID                                                   NOT NULL NUMBER
     SERIAL#                                               NOT NULL NUMBER
     CTIME                                                 NOT NULL NUMBER
     MACHINE                                                        VARCHAR2(64)
     TERMINAL                                                       VARCHAR2(30)
     PROGRAM                                                        VARCHAR2(48)
     ACTION                                                         VARCHAR2(64)
     MODULE                                                         VARCHAR2(64)
    to test the code to kill the blocker
    SQL> create or replace procedure killblocker
      2  is
      3  stmt varchar2(1000);
      4  cursor c1 is 
      5  select  s1.SQL_EXEC_START+l1.ctime killtime, s1.username,s1.sid,s1.serial#,l1.ctime ,s1.machine
    ,s1.TERMINAL, s1.PROGRAM,s1.ACTION,s1.MODULE
      6      from v$lock l1, v$session s1, v$lock l2, v$session s2
      7      where s1.sid=l1.sid and s2.sid=l2.sid
      8      and l1.BLOCK=1 and l2.request > 0
      9      and l1.id1 = l2.id1
     10      and l2.id2 = l2.id2 
     11      and l1.ctime >0;
     12  begin
     13  for i in c1 loop 
     14  EXECUTE IMMEDIATE 'ALTER SYSTEM KILL SESSION ''' || i.sid || ',' || i.serial# || '''';
     15  stmt := 'insert into killsessionlog values ('||i.killtime||','|| i.username||','||i.sid||','||i
    .serial#||','||i.ctime||','||i.machine||','||i.TERMINAL||','|| i.PROGRAM||','||i.ACTION||','||i.MODU
    LE||')'
     16  ;
     17  EXECUTE IMMEDIATE stmt;
     18  dbms_output.put_line('SID '||i.sid ||' with serial# '||i.serial#||' was killed');
     19    END LOOP; 
     20  END; 
     21  /
    
    Procedure created.
    created the blocker and blocked the sessions.
    SQL> exec killblocker
    BEGIN killblocker; END;
    
    *
    ERROR at line 1:
    ORA-00936: missing expression
    ORA-06512: at "NN.KILLBLOCKER", line 17
    ORA-06512: at line 1
    worked the first EXECUTE IMMEDIATE for the murder of the session, but the 2nd EXECUTE IMMEDIATE for insertion failed as above. Not able to understand the problem.

    TIA
    SQL> create or replace procedure killblocker
      2  is
      3  stmt varchar2(1000);
      4  cursor c1 is
      5  select  s1.SQL_EXEC_START+l1.ctime killtime, s1.username,s1.sid,s1.serial#,l1.ctime ,s1.machine
    ,s1.TERMINAL, s1.PROGRAM,s1.ACTION,s1.MODULE
      6      from v$lock l1, v$session s1, v$lock l2, v$session s2
      7      where s1.sid=l1.sid and s2.sid=l2.sid
      8      and l1.BLOCK=1 and l2.request > 0
      9      and l1.id1 = l2.id1
     10      and l2.id2 = l2.id2
     11      and l1.ctime >0;
     12  begin
     13  for i in c1 loop
     14  EXECUTE IMMEDIATE 'ALTER SYSTEM KILL SESSION ''' || i.sid || ',' || i.serial# || '''';
     15  stmt := 'insert into killsessionlog values (:killtime, :username, :sid, :serial#, :ctime, :machine, :TERMINAL, :PROGRAM, :ACTION, :MODULE)'
     16  ;
     17  EXECUTE IMMEDIATE stmt using i.killtime, i.username, i.sid, i.serial#, i.ctime, i.machine, i.TERMINAL, i.PROGRAM, i.ACTION, i.MODULE;
     18  dbms_output.put_line('SID '||i.sid ||' with serial# '||i.serial#||' was killed');
     19    END LOOP;
     20  END;
     21  / 
    

    Gerard

  • Appeal procedure set up by IMMEDIATE EXECUTION

    SQL> Create table bipul_test (a number(3), b number(2), c number(5), d varchar2(10), status varchar2(10));
    
    Table Created.
    
    SQL> desc bipul_test
     Name                                      Null?    Type
     ----------------------------------------- -------- ----------------------------
     A                                                  NUMBER(3)
     B                                                  NUMBER(2)
     C                                                  NUMBER(5)
     D                                                  VARCHAR2(10)
     STATUS                                             VARCHAR2(10)
    
    
    SQL> insert into bipul_test values(1,1,1,'a', null);
    SQL> insert into bipul_test values(1,1,1,'b', null);
    SQL> insert into bipul_test values(2,1,2,'c', null);
    SQL> insert into bipul_test values(2,2,2,'d', null);
    SQL> insert into bipul_test values(null, null, null, 'x',null);
    SQL> commit;
    
    SQL> select * from bipul_test;
    
             A          B          C D          STATUS
    ---------- ---------- ---------- ---------- ----------
             1          1          1 a          
             1          1          1 b          
             2          1          2 c          
             2          2          2 d
                                     x
    Package: my_package
    Procedure: proc2, proc3
    CREATE OR REPLACE PACKAGE SRGUPTA.my_package AS
        -- PROCEDURE proc2;
        PROCEDURE proc2 (status OUT varchar2);
        PROCEDURE proc3 (Proc_name IN VARCHAR2, status IN OUT varchar2);
    END my_package;
    
    /
    
    CREATE OR REPLACE PACKAGE BODY SRGUPTA.my_package
    IS
    -- PROCEDURE proc2
    PROCEDURE proc2(status OUT varchar2)
    AS
    n number(2);
       BEGIN
         update bipul_test set status ='SUCCESS' where A=1;
         commit;
         status:='FAILURE';
    end proc2;
    
    PROCEDURE proc3 (proc_name varchar2, status IN OUT varchar2)
    AS
    x varchar2(100):=null;
       BEGIN
         --EXECUTE IMMEDIATE 'BEGIN '||proc_name||'; END;';
         EXECUTE IMMEDIATE 'BEGIN '||proc_name||'(status); END;';
         
         if status='FAILURE' then
            update bipul_test set status ='FAILURE' where A=2;
            commit;
         end if;
    end proc3;
    END  my_package;
    /
    The Code of the appellant:
    set feedback on
    set serveroutput on
    DECLARE status VARCHAR2(100):='';
     begin
    my_package.proc3('my_package.proc2', status);
    end;
    /
    EXIT;
    Without THE normal execution mode param works very well. Above code is an effort through which I tried to capture the value of OUT to the appellant PROC3 param.

    PROC3 call PROC2 with immediate execution. Now if PROC2 have a parameter OUT and I want to capture in PROC3, is it possible?

    Out of desire to my code:
    SQL> select * from bipul_test;
    
             A          B          C D          STATUS
    ---------- ---------- ---------- ---------- ----------
             1          1          1 a          SUCCESS
             1          1          1 b          SUCCESS
             2          1          2 c          FAILURE
             2          2          2 d           FAILURE
                                    x
    Published by: handsome June 3, 2011 06:29
    SQL> Create table bipul_test (a number(3), b number(2), c number(5), d varc
    (10));
    
    Table created.
    
    SQL> insert into bipul_test values(1,1,1,'a', null);
    
    1 row created.
    
    SQL>
    SQL> insert into bipul_test values(1,1,1,'b', null);
    
    1 row created.
    
    SQL> insert into bipul_test values(2,1,2,'c', null);
    
    1 row created.
    
    SQL> insert into bipul_test values(2,2,2,'d', null);
    
    1 row created.
    
    SQL> insert into bipul_test values(null, null, null, 'x',null);
    
    1 row created.
    
    SQL> commit;
    
    Commit complete.
    
    SQL> select * from bipul_test;
    
             A          B          C D          STATUS
    ---------- ---------- ---------- ---------- ----------
             1          1          1 a
             1          1          1 b
             2          1          2 c
             2          2          2 d
                                     x
    
    SQL> CREATE OR REPLACE PACKAGE my_package AS
      2    -- PROCEDURE proc2;
      3    PROCEDURE proc2(status OUT varchar2);
      4    PROCEDURE proc3(Proc_name IN VARCHAR2, status IN OUT varchar2);
      5  END my_package;
      6  /
    
    Package created.
    
    SQL> CREATE OR REPLACE PACKAGE BODY my_package
      2  IS
      3  -- PROCEDURE proc2
      4  PROCEDURE proc2(status OUT varchar2)
      5  AS
      6  n number(2);
      7     BEGIN
      8   update bipul_test set status ='SUCCESS' where A=1;
      9   commit;
     10   status:='FAILURE';
     11  end proc2;
     12
     13  PROCEDURE proc3 (proc_name varchar2, status IN OUT varchar2)
     14  AS
     15  x varchar2(100):=null;
     16     BEGIN
     17   --EXECUTE IMMEDIATE 'BEGIN '||proc_name||'; END;';
     18   EXECUTE IMMEDIATE 'BEGIN '||proc_name||'(:1); END;' USING IN OUT status;
     19
     20   if status='FAILURE' then
     21      update bipul_test set status ='FAILURE' where A=2;
     22      commit;
     23   end if;
     24  end proc3;
     25  END  my_package;
     26  /
    
    Package body created.
    
    SQL> set serverout on
    SQL> DECLARE
      2  status VARCHAR2(100):='';
      3   begin
      4  my_package.proc3('my_package.proc2', status);
      5  dbms_output.put_line(status);
      6  end;
      7  /
    FAILURE
    
    PL/SQL procedure successfully completed.
    
    SQL> 
    
  • 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

  • ERROR: ORACLE prepare error: ORA-00936: lack of expression

    Hello

    I am required to run the 'pass-through' Oracle SQL, to extract data from tables in the SAS for processing and handling. My code (attached) reads and writes (runs) but with zero records to test first. I can't get beyond the error to prepare.

    The request is just like other queries that seem to work, but I can't get past this prepare error. I have no other access to individauls with an adequate knowledge of the PL SQL and as a last stop hoped others in the forum could quickly identify the source of the error.

    Thank you very much in advance for any help.

    Jeff
    _______________________________________

    1; *'; * « ; * / ; Quit; execution risk;
    2 OPTIONS NUMPAGE = MIN;
    3% LET _CLIENTTASKLABEL = % NRBQUOTE (rx_biplr_v3_2);
    4% LET _EGTASKLABEL = % NRBQUOTE (rx_biplr_v3_2);
    5% LET _CLIENTPROJECTNAME = %NRBQUOTE();
    6% LET _SASPROGRAMFILE =;
    7
    8 ODS CLOSE SUBJECT;
    NOTE: Some of your options or statements will not be managed with the Activex or Java Series devices. Chart by default for these
    drivers may be different from other SAS/GRAPH device drivers. For more information, please contact Technical Support.
    9 OPTIONS DEV = ACTIVEX;
    10 EGHTML TEMP FILE NAME;
    NOTE: Writing, body HTML (EGHTML) file: EGHTML
    11 ODS HTML(ID=EGHTML) FILE = EGHTML ENCODING = 'utf - 8' STYLE = EGDefault.
    11. STYLESHEET=(URL="file:///C:/program%20Files/SAS/shared%20Files/BIClientStyles/EGDefault.CSS")
    11. ATTRIBUTES = ("http://www2.sas.com/codebase/graph/v91/sasgraph.exe"="CODE") NOGTITLE NOGFOOTNOTE GPATH = & sasworklocation
    11.
    12
    gaccessible 13%;
    14 /********************************************************/
    15 * RX_BIPLR_V3. SAS;
    16 /********************************************************/
    17
    18 dm 'journal clearly out; delete ";
    19 linesize options = 120;
    20 option obs = 0 NoReplace;
    21
    22 ****************************************************************************************;
    23 * date reviewed programmer in WHICH WAS MADE;
    24 *----- -------------- ------------ -----------------------------------------;
    25 * 2005 creation of David Boyd program to the test population;
    26 *;
    27 * 06/02/2006 Ivon Jones changed to include the whole of the population;
    28 *;
    29 * 20/07/2006 Ivon Jones identified the holdout data elements;
    30 * or inclusion in the consolidation with;
    31 * Robin report;
    32 *;
    33 * 18/08/2006 Ivon Jones updated specific therapeutic Classes.
    34 * 10 - 2009 J Shaf - changed to extract actual or potential of UBH bipolar Dx and medical claims.
    35 ****************************************************************************************;
    36
    37
    38
    39 * % let allclmorgn = (', 'A'); / * claims origin code * /.
    40% would let begdate ='01 SEP 2009;
    41% let enddate = 30 SEP 2009 would be;
    42% let q = %str(%');
    43
    44
    45 data _null_;
    46. call symput ("fdos", put (intnx ('month' ' and begdate "d,-27," starts"), date9.));
    47 call symput ('ldos', put (intnx ('months', ' and enddate "d-0, 'end'" "), date9.));
    48, run;

    NOTE: DATA statement used (total duration of processes):
    time real 0.01 seconds
    2 the system SAS 11:44 Friday, October 30, 2009

    time CPU 0.01 seconds


    49
    50
    51
    52 **************************************************************;
    53 *? Data _null_ stage allows to create a macro variable to;
    54 * year and month, based on the macro ldos variable in the data;
    55 * step up? ;
    56 **************************************************************;
    57
    58
    59 data _null_;
    If 60 months ("& ldos" d) < 10
    61, then call symput ("yr_mo", compress (year ("& ldos" d) |)) '0' || months ("& ldos" d)));
    62 other call symput ("yr_mo", compress (year ("& ldos" d) | months ("& ldos" d)));
    63 to run;

    NOTE: The numeric values were converted to character values in the locations given by: (Line): (Column).
    61:39 61:64 62:39 62:57
    NOTE: DATA statement used (total duration of processes):
    time real 0.01 seconds
    time processor 0.01 seconds


    64
    65 * make % & biplr_dx;
    position 66% & begdate;
    ' 01 SEP 2009 would be
    67% put & enddate;
    30 SEP 2009 would be
    68% put & fdos;
    JUNE 1, 2007
    69% put & ldos;
    SEPTEMBER 30, 2009
    70% put & q;
    '
    71
    72
    73 libname biplr ' / home/jshafi01/projects/adhoc/biplr_dprsn/data ';
    NOTE: Libref BIPLR has been awarded with success as follows:
    Engine: V9
    Physical name: / home/jshafi01/projects/adhoc/biplr_dprsn/data
    74 rosdwp libname = oracle user "& oracle_user." pass = "& oracle_pass." ' buffsize = 32767 path = "rosdwp"; "
    NOTE: Libref ROSDWP has been awarded with success as follows:
    Engine: ORACLE
    Physical name: rosdwp
    75
    work.biplr_up_v1 76 data;
    mbr_id length 77 attrib = $ 26;
    78 the value biplr.biplr_ubh_med_v1;
    79 to be performed;

    NOTE: There were 0 read comments from the BIPLR data set. BIPLR_UBH_MED_V1.
    NOTE: All data WORK. BIPLR_UP_V1 has 0 comments and variables 1.
    NOTE: DATA statement used (total duration of processes):
    time real 0.01 seconds
    3 the system SAS 11:44 Friday, October 30, 2009

    time processor 0.01 seconds


    80
    81 proc content;
    82 to be performed;

    NOTE: PROCEDURE used CONTENT (total duration of processes):
    time real 0.03 seconds
    time CPU 0.03 seconds


    83
    84 proc datasets
    85 = rosdwp nolist library.
    86. delete biplr_up_v1;
    87 of quitting;

    NOTE: The removal of ROSDWP. BIPLR_UP_V1 (memtype = DATA).
    NOTE: PROCEDURE used DATASETS (time Total of processes):
    time real 3.74 seconds
    time CPU 0.03 seconds


    88
    89 proc datasets
    90 = work nolist library.
    copy 91 = rosdwp move;
    92 select biplr_up_v1;
    93 of quitting;

    NOTE: Move WORK. BIPLR_UP_V1 to ROSDWP. BIPLR_UP_V1 (memtype = DATA).
    NOTE: Variable labels SAS, formats and lengths are not written to the DBMS tables.
    NOTE: There were 0 read comments from the WORKING data set. BIPLR_UP_V1.
    NOTE: All the data ROSDWP. BIPLR_UP_V1 has 0 comments and variables 1.
    NOTE: PROCEDURE used DATASETS (time Total of processes):
    real 0.32 seconds
    time CPU 0.04 seconds


    94
    95
    96
    97 *****************************************************************************;
    98
    99 * execute (commit) by rosdwp
    100 ******************************************************************************;
    101
    102
    103 proc SQL noprint.
    104, connect to oracle as rosdwp (user = "" & oracle_user. "password =" "& oracle_pass ' buffsize = 32767 path ="rosdwp")
    104. preserve_comments);
    run 105 (alter session set nls_date_format = 'ddmonyyyy') by rosdwp;
    CREATE table biplr_rx like 106
    107 SELECT
    mrb_id 108,
    pcp_spc 109,
    rx_date 110,
    4 the system SAS 11:44 Friday, October 30, 2009

    Mark 111,
    generic, 112
    113 ahfs_cd
    ahfs_dsc 114,
    lbl 115,
    strngth 116,
    UNT 117,
    spc_tx_cls_cd 118,
    119 spc_tx_cls_dsc,
    GCN 120,
    rx_num 121,
    rx_ingrd 122,
    rx_paid 123,
    rx_cnt 124,
    rx_qty 125,
    rx_day 126
    127 rosdwp CONNECTION
    128 (SELECT
    129, middle of the year. UNIQ_MBR_ID as mrb_id,
    130 DB. PRVDR_SPCLTY_DESC as pcp_spc,
    FCP 131. LAST_SRVC_DT as rx_date,
    132 JJ. BRAND_NAME as mark,
    133 JJ. GNRC_NAME as generic,
    134 JJ. AHFS_THRPTC_CLS_CD as ahfs_cd,
    DD 135. AHFS_THRPTC_CLS_DESC as ahfs_dsc,
    136 JJ. LABEL_NAME as lbl,
    137 JJ. STRNGTH_NUM as strngth
    138 JJ. STRNGTH_UNIT_DESC as unt,
    139 JJ. SPECF_THRPTC_CLS_CD as spc_tx_cls_cd,
    140 DD. SPECF_THRPTC_CLS_DESC as spc_tx_cls_dsc,
    141 JJ. GCN_NUM as gcn,
    FCP 142. PRSCRPTN_NUM as rx_num,
    SUM of 143 (FCP. INGRDNT_AMT) as rx_ingrd,
    SUM of 144 (FCP. PD_AMT) as rx_paid,
    $ 145 (FCP. UNIT_SRVC_CNT) as rx_cnt,
    SUM of 146 (FCP. DSPNSD_QTY) as rx_qty,
    SUM of 147 (FCP. DAY_SUPLY_CNT) as rx_day
    148
    149 PHRMCY_CLM_FACT pcf,
    150 MBR_ID_DMNSN environment,
    151 DRUG_DMNSN dd,
    152 PRVDR_DMNSN pd,
    153 biplr_up_v1
    154. WHERE THE
    (155)
    156 (biplr_up_v1.mbr_id = MBR_ID_DMNSN. UNIQ_MBR_ID) and
    157 (PHRMCY_CLM_FACT. FINL_CLM_KEY = PHRMCY_FINL_CLM_DMNSN. FINL_CLM_KEY) AND
    158 (PHRMCY_CLM_FACT. MBR_KEY = MBR_ID_DMNSN. MBR_KEY) and
    159 (PHRMCY_CLM_FACT. BNFT_KEY = MBR_BNFT_DMNSN. BNFT_KEY) and
    160 (PHRMCY_CLM_FACT. DRUG_KEY = DRUG_DMNSN. DRUG_KEY) and
    161 (PHRMCY_FINL_CLM_DMNSN. CLM_ORGN_CD IN (', 'A')) AND
    162 (PHRMCY_CLM_FACT. LAST_SRVC_DT BETWEEN q. & fdos. & q and & q. & ldos. & q)
    163)
    164 Group By
    165 mi. UNIQ_MBR_ID,
    166 pd. PRVDR_SPCLTY_DESC,
    FCP 167. LAST_SRVC_DT,
    168 JJ. BRAND_NAME,
    5 the system SAS 11:44 Friday, October 30, 2009

    169 JJ. GNRC_NAME,
    170 JJ. AHFS_THRPTC_CLS_CD,
    171 JJ. AHFS_THRPTC_CLS_DESC,
    172 JJ. LABEL_NAME,
    173 JJ. STRNGTH_NUM,
    174 JJ. STRNGTH_UNIT_DESC,
    175 JJ. SPECF_THRPTC_CLS_CD,
    176 JJ. SPECF_THRPTC_CLS_DESC,
    177 JJ. GCN_NUM,
    FCP 178. PRSCRPTN_NUM
    179);
    ERROR: ORACLE prepare error: ORA-00936: lack of expression. SQL statement: SELECT middle. UNIQ_MBR_ID as mrb_id,
    RDL PRVDR_SPCLTY_DESC like pcp_spc, FCP. LAST_SRVC_DT as rx_date, JJ. BRAND_NAME as brand, JJ. GNRC_NAME as generic,
    DD. AHFS_THRPTC_CLS_CD like ahfs_cd, JJ. AHFS_THRPTC_CLS_DESC as ahfs_dsc, JJ. LABEL_NAME as lbl, JJ. STRNGTH_NUM as
    strngth, JJ. STRNGTH_UNIT_DESC as unt, JJ. SPECF_THRPTC_CLS_CD as spc_tx_cls_cd, JJ. SPECF_THRPTC_CLS_DESC as
    spc_tx_cls_dsc, JJ. GCN_NUM as gcn, FCP. PRSCRPTN_NUM as rx_num, SUM (FCP. INGRDNT_AMT) as rx_ingrd, SUM (FCP. PD_AMT)
    as rx_paid, SUM (FCP. UNIT_SRVC_CNT) as rx_cnt, SUM (FCP. DSPNSD_QTY) as rx_qty, SUM (FCP. DAY_SUPLY_CNT) as rx_day
    OF PHRMCY_CLM_FACT pcf, MBR_ID_DMNSN mi, DRUG_DMNSN JJ, pd of the PRVDR_DMNSN, biplr_up_v1 () WHERE the
    (biplr_up_v1.mbr_id = MBR_ID_DMNSN. UNIQ_MBR_ID) and (PHRMCY_CLM_FACT. FINL_CLM_KEY =
    PHRMCY_FINL_CLM_DMNSN. FINL_CLM_KEY) AND (PHRMCY_CLM_FACT. MBR_KEY = MBR_ID_DMNSN. MBR_KEY) and
    (PHRMCY_CLM_FACT. BNFT_KEY = MBR_BNFT_DMNSN. BNFT_KEY) and (PHRMCY_CLM_FACT. DRUG_KEY = DRUG_DMNSN. DRUG_KEY) and
    (PHRMCY_FINL_CLM_DMNSN. CLM_ORGN_CD IN (', 'A')) AND (PHRMCY_CLM_FACT. LAST_SRVC_DT BETWEEN ' 01 JUN 2007"
    and 30 SEP 2009') Group By mi. UNIQ_MBR_ID, pd. PRVDR_SPCLTY_DESC, FCP. LAST_SRVC_DT, JJ. BRAND_NAME,
    DD GNRC_NAME, JJ. AHFS_THRPTC_CLS_CD, JJ. AHFS_THRPTC_CLS_DESC, JJ. LABEL_NAME, JJ. STRNGTH_NUM,
    DD STRNGTH_UNIT_DESC, JJ. SPECF_THRPTC_CLS_CD, JJ. SPECF_THRPTC_CLS_DESC, JJ. GCN_NUM, FCP. PRSCRPTN_NUM.
    NOTE: PROC SQL set NOEXEC option and will continue to check the syntax of the instructions.
    180 run (drop table biplr_up_v1) in rosdwp;
    NOTE: Statement is not executed because the NOEXEC option.
    181 disconnect of rosdwp;
    NOTE: Statement is not executed because the NOEXEC option.
    182 of quitting;
    NOTE: The SAS system is stopped at this stage of processing errors.
    NOTE: PROCEDURE used SQL (total duration of processes):
    time real 0.14 seconds
    time CPU 0.03 seconds

    183
    184

    (1) assuming that LAST_SRVC_DT is a column of PHRMCY_CLM_FACT, to precede the table alias "FCP" rather than the full table name. If a table alias is specified in the FROM clause, it should be used rather than the full table name when you reference the columns.
    2) there are two tables in the WHERE clause that do not appear in the FROM clause:

    PHRMCY_FINL_CLM_DMNSN
    MBR_BNFT_DMNSN

    user12142482 wrote:
    Hello again,

    Wish Oracle was a bit more informative. Uses an Institute of SAS product called Enterprise Guide. A "hot fix" has been installed to solve a problem that the product appears unable to save the latest version of the revised code changes (hence "BETWEEN between" remaining even after an earlier edition). In any case, with the change, now get this error:

    «ERROR: ORACLE prepare error: ORA-00904: "PHRMCY_CLM_FACT".» ' LAST_SRVC_DT': invalid identifier. (The log file is displayed below)

    -The-Les restes remains of the error, no matter if code "pass" is used to move the date range to Oracle (which seems correct to the log output below that I believe), or if I hard code the date range in the query SQL PL itself.

    -L' preparation error always appears at the end of the internal SELECTION.
    -L' error of preparation remain, with or without the GROUP BY clause.

    Is there something else I'm missing? Someone suggested a reserve word - but other versions of the ANSI SQL standard, I don't see that is the case. I went to Support SAS and SAS list serve to the University of Georgia, but nothing definite from these sources. Have requested either able to run Oracle directly, outside this SAS Institute product - process.

    Any suggestions are greatly appreciated. Thank you to all the world very much.

    Jeff
    150 OF
    151 PHRMCY_CLM_FACT pcf,


    152 MBR_ID_DMNSN environment,
    153 DRUG_DMNSN dd,
    154 PRVDR_DMNSN pd,
    155 BIPLR_UP_V1 BLPR2
    156. WHERE THE
    157 (BIPLR_UP_V1.mbr_id = MBR_ID_DMNSN. UNIQ_MBR_ID) and
    158 (PHRMCY_CLM_FACT. FINL_CLM_KEY = PHRMCY_FINL_CLM_DMNSN. FINL_CLM_KEY) AND
    159 (PHRMCY_CLM_FACT. MBR_KEY = MBR_ID_DMNSN. MBR_KEY) and
    160 (PHRMCY_CLM_FACT. BNFT_KEY = MBR_BNFT_DMNSN. BNFT_KEY) and
    161 (PHRMCY_CLM_FACT. DRUG_KEY = DRUG_DMNSN. DRUG_KEY) and
    162 (PHRMCY_FINL_CLM_DMNSN. CLM_ORGN_CD IN (', 'A')) AND
    163 (PHRMCY_CLM_FACT. BETWEEN LAST_SRVC_DT & q. & fdos. & q and q & ldos. & q)
    (164);
    ERROR: ORACLE prepare error: ORA-00904: "PHRMCY_CLM_FACT." "' LAST_SRVC_DT ': invalid identifier. SQL statement:

Maybe you are looking for

  • HP Pavilion 15-ab234nl: voiding the warranty

    Hi all yesterday I got a new HP laptop and I want to install an SSD with a caddy, replacing the DVD drive. My question is, if I do this replacement, the warranty? There isn't that one screw to remove to remove the DVD drive, so I don't have to diasse

  • Hardware diagnostics: "SMART short Self Test - failed" and "targeted read Test Failed.

    Original title: "SMART short Self Test - failed" and "targeted read Test Failed", all the patches? When using PC checkup of Dell I get the following errors; during the analysis of the material. "SMART short self-test - failed" and "targeted read Test

  • Why my windows firewall running?

    I have a toshiba satellite comes with Norton AntiVirus trial... when that ran out, since my windows firewall starts to turn off and all day I was the annoying popups of norton saying I turned it off and I am not covered. I go to the control panel to

  • What is the unit of allocation best partition optimized for games and other files?

    Original title: Dear lads! I'm buying a Western Digital Caviar Black 500 GB, and I intend to optimize my HARD drive I want to tell you, what I usually use my PC, so you can help me with the allocation units, partitions and the locations of the page f

  • How to display the generated Dispdiag utility DAT file?

    I have collected dispdiag dat file utility. I am unable to view the file using notepad normal edit. is there any utility or the command to display the data on the formatted way dat file. Thanks in advance :)