1.创建表CREATE TABLE HK_PERSON (
   EntityID VARCHAR(50)  PRIMARY KEY,
   Name VARCHAR(50) ,
   Age   VARCHAR(50) ,
   Description VARCHAR(255),
   Timestamp    TIMESTAMP NOT NULL,
   ClientModifyDt TIMESTAMP DEFAULT sysdate NOT NULL ,
   ModifyDt  TIMESTAMP DEFAULT sysdate NOT NULL ,
   CreateDt  TIMESTAMP DEFAULT sysdate NOT NULL ,
   ActiveFlg Integer DEFAULT (1) NOT NULL
)
2.创建存储过程CREATE OR REPLACE PROCEDURE HK_PROC_UI_PERSON
(
   v_EntityID               VARCHAR,
   v_Name                   VARCHAR,
   v_Age                    VARCHAR,
   v_Description            VARCHAR,
   v_Timestamp              TIMESTAMP,
   v_ClientModifyDt         TIMESTAMP,
   v_CreateDt               TIMESTAMP,
   v_ActiveFlg              INTEGER
)
IS
BEGIN 
  INSERT INTO HK_PERSON(
    EntityID,
    Name,
    Age,
    Description,
    Timestamp,
    ClientModifyDt,
    ModifyDt,
    CreateDt,
    ActiveFlg 
  )
  VALUES
  (
    v_EntityID,
    v_Name,
    v_Age,
    v_Description,
    v_Timestamp,
    v_ClientModifyDt,
    v_CreateDt,
    v_CreateDt,
    v_ActiveFlg 
  )
  ;
  
  EXCEPTION
       WHEN OTHERS THEN RAISE;
END HK_PROC_UI_PERSON;
PLSQL报错:
Compilation errors for PROCEDURE HK_PDA.HK_PROC_UI_PERSONError: PL/SQL: ORA-06552: PL/SQL: Compilation unit analysis terminated
       ORA-06553: PLS-320: the declaration of the type of this expression is incomplete or malformed
Line: 14
Text: INSERT INTO HK_PERSON(Error: PL/SQL: SQL Statement ignored
Line: 14
Text: INSERT INTO HK_PERSON(

解决方案 »

  1.   

    这个是Oracle的一个问题,如果你的表里面有timestamp类型的字段的话是不能用存储过程或程序包来调用这个表的。
      

  2.   

    Oracle10里面不知道解决了这个问题没有? 很感谢楼上的~ 我看了我的逻辑死活都不错啊. 呵呵~
      

  3.   

    CREATE TABLE HK_PERSON (
    EntityID VARCHAR(50) PRIMARY KEY,
    Name VARCHAR(50) ,
    Age VARCHAR(50) ,
    Description VARCHAR(255),
    "Timestamp" TIMESTAMP NOT NULL,
    ClientModifyDt TIMESTAMP DEFAULT sysdate NOT NULL ,
    ModifyDt TIMESTAMP DEFAULT sysdate NOT NULL ,
    CreateDt TIMESTAMP DEFAULT sysdate NOT NULL ,
    ActiveFlg Integer DEFAULT (1) NOT NULL
    )
    2.创建存储过程CREATE OR REPLACE PROCEDURE HK_PROC_UI_PERSON
    (
    v_EntityID VARCHAR,
    v_Name VARCHAR,
    v_Age VARCHAR,
    v_Description VARCHAR,
    v_Timestamp TIMESTAMP,
    v_ClientModifyDt TIMESTAMP,
    v_CreateDt TIMESTAMP,
    v_ActiveFlg INTEGER
    )
    IS
    BEGIN
    INSERT INTO HK_PERSON(
    EntityID,
    Name,
    Age,
    Description,
    "Timestamp",
    ClientModifyDt,
    ModifyDt,
    CreateDt,
    ActiveFlg
    )
    VALUES
    (
    v_EntityID,
    v_Name,
    v_Age,
    v_Description,
    v_Timestamp,
    v_ClientModifyDt,
    v_CreateDt,
    v_CreateDt,
    v_ActiveFlg
    )
    ;EXCEPTION
    WHEN OTHERS THEN RAISE;
    END HK_PROC_UI_PERSON;select * from HK_PERSON