ゞ沉默是金ゞ

          魚離不開水,但是沒有說不離開哪滴水.
          posts - 98,comments - 104,trackbacks - 0

          1.        1.Define the object type PROFILE_TAG_TYPE.

          CREATE OR REPLACE TYPE PZN_ADMIN.PROFILE_TAG_TYPE

          AS

           OBJECT

           (

              MID                     VARCHAR2 (34),

              TAG_ID                  NUMBER,

              CUSTOMER_TYPE           VARCHAR2(1),

              SOURCE_SYSTEM           VARCHAR2(30),

              TAG_CREATED_DATE        VARCHAR2(30),

              INTEREST_LEVEL          NUMBER(2),

              SUPPRESSION_IND         VARCHAR2(2),

              SUPPRESSION_EXPIRY_DATE VARCHAR2(30),

              LAST_HOUSEKEEPING_DATE VARCHAR2(30),

              LAST_EVENT_DATE         VARCHAR2(30),

          REASON                  VARCHAR2(1500) );

           

          2.       2. Grant PROFILE_TAG_TYPE execute access to PZN_MB_USER.

          GRANT EXECUTE ON PZN_ADMIN.PROFILE_TAG_TYPE TO PZN_MB_USER;

           

          3.       3. Define the array type reference to object PROFILE_TAG_TYPE.

          CREATE TYPE PZN_ADMIN.PROFILE_TAG_ARRAY AS TABLE OF PZN_ADMIN.PROFILE_TAG_TYPE;

           

          4.       4. Grant PROFILE_TAG_ARRAY execute access to PZN_MB_USER.

          GRANT EXECUTE ON PZN_ADMIN.PROFILE_TAG_ARRAY TO PZN_MB_USER;

           

          5.       5. Create store procedure package.

          CREATE OR REPLACE

          PACKAGE PZN_ADMIN.PZN_PROFILE_TAG_PKG

          AS

          PROCEDURE INSERT_PROFILE_TAG(

              PTA PROFILE_TAG_ARRAY);

          END PZN_PROFILE_TAG_PKG;

           

          6.       6. Create store procedure package body.

          CREATE OR REPLACE

          PACKAGE BODY PZN_ADMIN.PZN_PROFILE_TAG_PKG

          AS

          PROCEDURE INSERT_PROFILE_TAG(

              PTA PROFILE_TAG_ARRAY)

          AS

          BEGIN

           FOR I IN PTA.FIRST..PTA.LAST

           LOOP

              INSERT

              INTO PZN_ADMIN.PROFILE_TAG

                (

                  PROFILE_TAG_ID,

                  MID,

                  TAG_ID,

                  CUSTOMER_TYPE,

                  SOURCE_SYSTEM,

                  TAG_CREATED_DATE,

                  INTEREST_LEVEL,

                  SUPPRESSION_IND,

                  SUPPRESSION_EXPIRY_DATE,

                  LAST_HOUSEKEEPING_DATE,

                  LAST_EVENT_DATE,

                  REASON

                )

                VALUES

                (

                  SEQ_PROFILE_TAG_ID.NEXTVAL ,

                  PTA(I).MID,

                  PTA(I).TAG_ID,

                  PTA(I).CUSTOMER_TYPE,

                  PTA(I).SOURCE_SYSTEM,

                  TO_DATE(PTA(I).TAG_CREATED_DATE,'YYYY-MM-DD'),

                  PTA(I).INTEREST_LEVEL,

                  PTA(I).SUPPRESSION_IND,

                  TO_DATE(PTA(I).SUPPRESSION_EXPIRY_DATE,'YYYY-MM-DD'),

                  TO_DATE(PTA(I).LAST_HOUSEKEEPING_DATE,'YYYY-MM-DD'),

                  TO_DATE(PTA(I).LAST_EVENT_DATE,'YYYY-MM-DD'),

                  PTA(I).REASON

                );

           END LOOP;

          END INSERT_PROFILE_TAG;

          END PZN_PROFILE_TAG_PKG;

           

          7.       7. Create synonym to PZN_MB_USER.

          CREATE SYNONYM PZN_MB_USER.PZN_PROFILE_TAG_PKG FOR PZN_ADMIN.PZN_PROFILE_TAG_PKG;

           

          8.       8. Grant execute access to PZN_MB_USER.

          GRANT EXECUTE ON PZN_ADMIN.PZN_PROFILE_TAG_PKG TO PZN_MB_USER;

           

          9.       9. Create the java class to call the procedure.

           

          public class ProcedureTest2 {

           

                  public static void insertProfileTag(){

                                  Connection dbConn = null;

                                  try {

                                                  Object[] so1 = {"ee745b5782bfc311e0b5730a2aba15aa77",31,"C","eDB","2012-08-13",0,"0","2012-08-13","2012-08-13","2012-08-13","eDB"};

                                                  Object[] so2 = {"ee745b5782bfc311e0b5730a2aba15aa77",32,"C","eDB","2012-08-13",0,"0","2012-08-13","2012-08-13","2012-08-13","eDB"};

                                                  OracleCallableStatement callStatement = null;

                                                  Class.forName("oracle.jdbc.driver.OracleDriver");

                                                  dbConn = DriverManager.getConnection("jdbc:oracle:thin:@da957116.fmr.com:1521:orcl", "PZN_MB_USER", "PZN_MB_USER123");

                                                 

                                                  StructDescriptor st = new StructDescriptor("PZN_ADMIN.PROFILE_TAG_TYPE", dbConn);

                                                  STRUCT s1 = new STRUCT(st, dbConn, so1);

                                                  STRUCT s2 = new STRUCT(st, dbConn, so2);

                                                  STRUCT[] deptArray = { s1, s2 };

                                                 

                                                  ArrayDescriptor arrayDept = ArrayDescriptor.createDescriptor("PZN_ADMIN.PROFILE_TAG_ARRAY", dbConn);

                                                  ARRAY deptArrayObject = new ARRAY(arrayDept, dbConn, deptArray);

                                                 

                                                  callStatement = (OracleCallableStatement) dbConn.prepareCall("{call PZN_PROFILE_TAG_PKG.INSERT_PROFILE_TAG(?)}");

                                                  callStatement.setArray(1, deptArrayObject);

                                                  callStatement.executeUpdate();

                                                  dbConn.commit();

                                                  callStatement.close();

                                  } catch (Exception e) {

                                                  System.out.println(e.toString());

                                                  e.printStackTrace();

                                  }

                  }

           

                  public static void main(String[] args) {

                                  insertProfileTag();

                  }

          }

          posted on 2012-08-13 16:17 ゞ沉默是金ゞ 閱讀(336) 評論(0)  編輯  收藏 所屬分類: DB
          主站蜘蛛池模板: 沈丘县| 沙田区| 邢台县| 德令哈市| 沾益县| 西华县| 威远县| 中方县| 尖扎县| 南充市| 镇沅| 如皋市| 惠来县| 临潭县| 丹凤县| 康保县| 探索| 双柏县| 惠来县| 洛阳市| 绥滨县| 嫩江县| 印江| 武威市| 台前县| 长宁区| 遵义县| 鄢陵县| 都安| 余干县| 安国市| 阳信县| 巍山| 安福县| 盐边县| 无极县| 当涂县| 金溪县| 利辛县| 东海县| 宁波市|