OBJECT 생성 TEST 구문

반응형

CONN SYS/TIBERO
DROP USER USER1 CASCADE;
DROP USER USER2 CASCADE;
CREATE USER USER1 IDENTIFIED BY TIBERO ;
CREATE USER USER2 IDENTIFIED BY TIBERO ;

GRANT CONNECT, RESOURCE, CREATE VIEW TO USER1 ;
GRANT CONNECT, RESOURCE, CREATE VIEW TO USER2 ;

CONN USER1/TIBERO

CREATE TABLE T_TEST1 ( C1 NUMBER , C2 VARCHAR(10) );
CREATE TABLE T_TEST2 ( C1 NUMBER , C2 VARCHAR(10) );

TRUNCATE TABLE T_TEST1;
INSERT INTO T_TEST1 VALUES(1,'ASDF');

 

insert into user1.t_test1 
select 
trunc(dbms_random.value(1,100)) as number1, -- between 1 and 100 integer
dbms_random.string('X',5) as character1 -- randomly upper or lower case + number 
from dual;


COMMIT;

CREATE VIEW V_TEST1 AS SELECT * FROM T_TEST1 WITH READ ONLY;

CREATE OR REPLACE PROCEDURE P_TEST1 (V_NO IN NUMBER)
IS
V_VAR VARCHAR(10);

BEGIN
  SELECT C2 INTO V_VAR
   FROM T_TEST1
WHERE C1=V_NO;

INSERT INTO T_TEST1 VALUES(2,'ASDF');

EXCEPTION  WHEN NO_DATA_FOUND THEN INSERT INTO T_TEST1 VALUES(3,V_VAR);
END;
/

EXEC P_TEST1(1);
EXEC P_TEST1(878);
SELECT * FROM T_TEST1;

CREATE OR REPLACE FUNCTION F_TEST1 (I_NO NUMBER)
RETURN VARCHAR2
IS 
  V_VAR VARCHAR(10);

BEGIN
  SELECT C2 INTO V_VAR
  FROM T_TEST1
  WHERE C1 = I_NO
  AND ROWNUM=1;

RETURN V_VAR;
END;
/

SELECT F_TEST1(1) FROM DUAL;

CREATE OR REPLACE PACKAGE PKG_TEST1 AS
PROCEDURE PROC_PRINT;
FUNCTION FUN_PRINT(V_KEY VARCHAR2) RETURN VARCHAR2;

END PKG_TEST1;
/

CREATE OR REPLACE PACKAGE BODY PKG_TEST1 AS

    FUNCTION FUN_PRINT(V_KEY IN VARCHAR2) RETURN VARCHAR2 IS
    BEGIN
        RETURN V_KEY;
    END;
    PROCEDURE PROC_PRINT IS
        V_VAR VARCHAR2(100);

    BEGIN

        V_VAR := FUN_PRINT('V01');
        DBMS_OUTPUT.PUT_LINE(V_VAR);
    END;
END PKG_TEST1;
/

SET SERVEROUTPUT ON
EXEC PKG_TEST1.PROC_PRINT;

CREATE OR REPLACE TRIGGER TRG_TEST1
       AFTER INSERT ON T_TEST1
       FOR EACH ROW
      
     BEGIN
     IF INSERTING THEN
      INSERT INTO T_TEST2 VALUES (:NEW.C1, 'I');
     END IF;
END;
/

EXEC P_TEST1(1);
SELECT * FROM T_TEST2;

반응형

'Database > TEST Script' 카테고리의 다른 글

[Tibero] Partition table  (0) 2023.03.01