Difference between revisions of "Oracle"

From database24
Jump to navigation Jump to search
Line 6: Line 6:
 
** Add
 
** Add
 
  PROCESSES=200
 
  PROCESSES=200
 
  
 
== FAQ ==
 
== FAQ ==
  
 
=== How do I realize an auto-incrementing field? ===
 
=== How do I realize an auto-incrementing field? ===
 +
<syntaxhighlight lang="sql">
 +
CREATE TABLE    MYTABLE (
 +
                ID          NUMBER(11, 0)  NOT NULL
 +
          -- , FIELD     
 +
                );
 +
 +
CREATE SEQUENCE MYTABLE_ID_SEQ
 +
    START WITH 1
 +
    INCREMENT BY 1
 +
    NOMAXVALUE;
 +
 +
CREATE TRIGGER MYTABLE_ID_TRG
 +
    BEFORE INSERT ON MYTABLE
 +
    FOR EACH ROW
 +
    BEGIN
 +
        SELECT MYTABLE_ID_SEQ.NEXTVAL
 +
          INTO :NEW.ID
 +
          FROM DUAL;
 +
    END;
 +
</syntaxhighlight>
 +
 +
=== How do I rollback? ===
 +
<syntaxhighlight lang="sql">
 +
SAVEPOINT MYSAVEPOINT;
 +
-- ...
 +
ROLLBACK TO MYSAVEPOINT;
 +
</syntaxhighlight>

Revision as of 23:20, 17 June 2011


Configuration

  • ORA-12516: TNS:listener could not find available handler with matching protocol stack
    • Edit %oracle_home%/database/init<SID>.ora
    • Add
PROCESSES=200

FAQ

How do I realize an auto-incrementing field?

CREATE TABLE    MYTABLE (
                ID          NUMBER(11, 0)   NOT NULL 
           -- , FIELD       
                );

CREATE SEQUENCE MYTABLE_ID_SEQ
    START WITH 1 
    INCREMENT BY 1 
    NOMAXVALUE; 

CREATE TRIGGER MYTABLE_ID_TRG
    BEFORE INSERT ON MYTABLE
    FOR EACH ROW
    BEGIN
        SELECT MYTABLE_ID_SEQ.NEXTVAL 
          INTO :NEW.ID 
          FROM DUAL;
    END;

How do I rollback?

SAVEPOINT MYSAVEPOINT;
-- ...
ROLLBACK TO MYSAVEPOINT;