English 中文(简体)
如何在Oracle程序上添加一个非金石块?
原标题:how to add annonymus block to procedure Oracle?

我如何用以下代码制定程序,因为冰箱中一米新元总是使用盐碱/ms,而且更容易使用。

DECLARE
    temp     VARCHAR2 (255);
    last_val NUMBER(9, 0);
    CURSOR c1 IS
      SELECT DISTINCT table_name
      FROM   user_tab_cols
      WHERE  column_name =  id ;
BEGIN
    FOR asd IN c1 LOOP
        temp := asd.table_name;

        EXECUTE IMMEDIATE  select NVL(max("id"),0)+1 from " ||temp|| "  INTO
        last_val;

        BEGIN
            EXECUTE IMMEDIATE  drop sequence "seq_ || temp|| " ;

            EXECUTE IMMEDIATE  create SEQUENCE "seq_ || temp|| " MINVALUE  ||
            last_val||
             MAXVALUE     999999999999999999999999999 INCREMENT BY 1 NOCACHE ;

            EXECUTE IMMEDIATE  select  ||temp|| .nextval from dual ;

            EXECUTE IMMEDIATE  ALTER SEQUENCE "seq_ ||temp|| " INCREMENT BY 1 ;
        EXCEPTION
            WHEN OTHERS THEN
              NULL;
        END;
    END LOOP;

    COMMIT;
END; 
最佳回答

用途

CREATE OR replace PROCEDURE Proc_name
IS
  temp     VARCHAR2 (255);
  last_val NUMBER(9, 0);
  CURSOR c1 IS
    SELECT DISTINCT table_name
    FROM   user_tab_cols
    WHERE  column_name =  id ;
BEGIN
    FOR asd IN c1 LOOP
        temp := asd.table_name;

        EXECUTE IMMEDIATE  select NVL(max("id"),0)+1 from " ||temp|| "  INTO
        last_val;

        BEGIN
            EXECUTE IMMEDIATE  drop sequence "seq_ || temp|| " ;

            EXECUTE IMMEDIATE  create SEQUENCE "seq_ || temp|| " MINVALUE  ||
            last_val||
             MAXVALUE     999999999999999999999999999 INCREMENT BY 1 NOCACHE ;

            EXECUTE IMMEDIATE  select  ||temp|| .nextval from dual ;

            EXECUTE IMMEDIATE  ALTER SEQUENCE "seq_ ||temp|| " INCREMENT BY 1 ;
        EXCEPTION
            WHEN OTHERS THEN
              NULL;
        END;
    END LOOP;

    COMMIT;
END;

/ 
问题回答

暂无回答




相关问题
Export tables from SQL Server to be imported to Oracle 10g

I m trying to export some tables from SQL Server 2005 and then create those tables and populate them in Oracle. I have about 10 tables, varying from 4 columns up to 25. I m not using any constraints/...

Connecting to Oracle 10g with ODBC from Excel VBA

The following code works. the connection opens fine but recordset.recordCount always returns -1 when there is data in the table. ANd If I try to call any methods/properties on recordset it crashes ...

How to make a one to one left outer join?

I was wondering, is there a way to make a kind of one to one left outer join: I need a join that matches say table A with table B, for each record on table A it must search for its pair on table B, ...

Insert if not exists Oracle

I need to be able to run an Oracle query which goes to insert a number of rows, but it also checks to see if a primary key exists and if it does, then it skips that insert. Something like: INSERT ALL ...

How can I store NULLs in NOT NULL field?

I just came across NULL values in NOT-NULL fields in our test database. How could they get there? I know that NOT-NULL constraints can be altered with NOVALIDATE clause, but that would change table s ...

Type reference scope

I m studying databases and am currently working on a object-relational DB project and I ve encountered a small problem with the number of possible constraints in an object table. I m using "Database ...

OracleParameter and DBNull.Value

we have a table in an Oracle Database which contains a column with the type Char(3 Byte). Now we use a parameterized sql to select some rows with a DBNull.Value and it doesn t work: OracleCommand ...

热门标签