Harold Hunsaker
06-10-02, 16:52
| Hello. Can anyone tell me how to copy a table with a long column using PL/SQL? I tried the following code using a cursor but it errors out (ORA-06502: PL/SQL: numeric or value error) The cursor copy works when I create the tmp table without the long and remove the long column from the cursor copy. SQLWKS> CREATE TABLE "Tmp_CB_REPORT" 2> ( 3> CB_RPT_ID NUMBER(38, 0), 4> CB_ID NUMBER(38, 0), 5> CB_REGION_ID NUMBER(38, 0), 6> WHEN_PULLED DATE NOT NULL, 7> PARSED NUMBER(1, 0) DEFAULT (0) NOT NULL, 8> RAW_DATA LONG NOT NULL, 9> JOINT NUMBER(1, 0) DEFAULT (0) NOT NULL, 10> RPTTYPE NUMBER(38, 0) NOT NULL, 11> OPTION1 NUMBER(1, 0) DEFAULT (0) NOT NULL, 12> OPTION2 NUMBER(1, 0) DEFAULT (0) NOT NULL, 13> OPTION3 NUMBER(1, 0) DEFAULT (0) NOT NULL, 14> OPTION4 NUMBER(1, 0) DEFAULT (0) NOT NULL, 15> OPTION5 NUMBER(1, 0) DEFAULT (0) NOT NULL, 16> OPTION6 NUMBER(1, 0) DEFAULT (0) NOT NULL, 17> OPTION7 NUMBER(1, 0) DEFAULT (0) NOT NULL, 18> OPTION8 NUMBER(1, 0) DEFAULT (0) NOT NULL, 19> OPTION9 NUMBER(1, 0) DEFAULT (0) NOT NULL, 20> OPTION10 NUMBER(1, 0) DEFAULT (0) NOT NULL, 21> OPTION11 NUMBER(1, 0) DEFAULT (0) NOT NULL, 22> OPTION12 NUMBER(1, 0) DEFAULT (0) NOT NULL, 23> OPTION13 NUMBER(1, 0) DEFAULT (0) NOT NULL, 24> OPTION14 NUMBER(1, 0) DEFAULT (0) NOT NULL, 25> OPTION15 NUMBER(1, 0) DEFAULT (0) NOT NULL, 26> OPTION16 NUMBER(1, 0) DEFAULT (0) NOT NULL, 27> OPTION17 NUMBER(1, 0) DEFAULT (0) NOT NULL, 28> OPTION18 NUMBER(1, 0) DEFAULT (0) NOT NULL, 29> OPTION19 NUMBER(1, 0) DEFAULT (0) NOT NULL, 30> OPTION20 NUMBER(1, 0) DEFAULT (0) NOT NULL, 31> REGION_ID NUMBER(38, 0), 32> RPT_TYPE_DESC VARCHAR2(40) 33> ) ; Statement processed. SQLWKS> / SQLWKS> SQLWKS> LOCK TABLE CB_REPORT IN EXCLUSIVE MODE NOWAIT; Statement processed. SQLWKS> SQLWKS> DECLARE 2> CURSOR datacursor IS SELECT CB_RPT_ID, CB_ID, CB_REGION_ID, WHEN_PULLED, PARSED, RAW_DATA, JOINT, RPTTYPE, OPTION1, OPTION2, OPTION3, OPTION4, OPTION5, OPTION6, OPTION7, OPTION8, OPTION9, OPTION10, OPTION11, OPTION12, OPTION13, OPTION14, OPTION15, OPTION16, OPTION17, OPTION18, OPTION19, OPTION20, REGION_ID, RPT_TYPE_DESC FROM CB_REPORT; 3> datarecord datacursor%ROWTYPE; 4> BEGIN 5> OPEN datacursor; 6> LOOP 7> FETCH datacursor INTO datarecord; 8> EXIT WHEN (datacursor%NOTFOUND); 9> INSERT INTO "Tmp_CB_REPORT"(CB_RPT_ID, CB_ID, CB_REGION_ID, WHEN_PULLED, PARSED, RAW_DATA, JOINT, RPTTYPE, OPTION1, OPTION2, OPTION3, OPTION4, OPTION5, OPTION6, OPTION7, OPTION8, OPTION9, OPTION10, OPTION11, OPTION12, OPTION13, OPTION14, OPTION15, OPTION16, OPTION17, OPTION18, OPTION19, OPTION20, REGION_ID, RPT_TYPE_DESC) VALUES (datarecord.CB_RPT_ID, datarecord.CB_ID, datarecord.CB_REGION_ID, datarecord.WHEN_PULLED, datarecord.PARSED, datarecord.RAW_DATA, datarecord.JOINT, datarecord.RPTTYPE, datarecord.OPTION1, datarecord.OPTION2, datarecord.OPTION3, datarecord.OPTION4, datarecord.OPTION5, datarecord.OPTION6, datarecord.OPTION7, datarecord.OPTION8, datarecord.OPTION9, datarecord.OPTION10, datarecord.OPTION11, datarecord.OPTION12, datarecord.OPTION13, datarecord.OPTION14, datarecord.OPTION15, datarecord.OPTION16, datarecord.OPTION17, datarecord.OPTION18, datarecord.OPTION19, datarecord.OPTION20, datarecord.REGION_ID, datarecord.RPT_TYPE_DESC); 10> END LOOP; 11> END; 12> / ORA-06502: PL/SQL: numeric or value error ORA-06512: at line 7 SQLWKS> Any help is appreciated. :confused: |