Tried that !
Rama, May 11, 2003 - 5:29 pm UTC
tom,
I am sorry I didnot mention it earlier. the update (copied from dbms output from the procedure) statement when executed from SQL*PLUS works fine. But, when the statement is executed dynamically, it gives this error.
Here is samle output:
-- LINE 1
UPDATE EQMODEL.TEST_PE_EPSG t
-- LINE 2
SET
(DATE_POPULATION,CAMOID,FS_DATE_DOWNLOADING,CAM_COUNTRY_CD,CAM_COUNTRY,CAM_SECTOR,CAM_INDUSTRY_GROUP,CAM_INDUSTRY,CAM_SUB_INDUSTRY
,GICS_SECTOR,GICS_INDGRP,GICS_INDUSTRY,GICS_SUB_INDUSTRY,MSCI_COUNTRY,MSCI_REGION,CW_CAP_LOCAL_CO_0,CW_CAP_USD_CO_0,
CW_CAP_USD_SEC_0,CW_CAP_LOCAL_SEC_0,WS_CURRENCY,IB_DATE_FY0_0,IB_DATE_FY1_0,IB_DATE_0,IB_MEDIAN_FY1__0,IB_MEDIAN_FY2__0,
IB_MEAN_FY1__0,IB_MEAN_FY2__0,IB_A_EPS_ACTUAL_0,FS_PRICE_IBESCURR,CP_PE_1Y_MAVG_0,CP_PE_3Y_MAVG_0,CP_PE_5Y_MAVG_0,CP_PE_7Y_MAVG_0,
WS_PE_1Y_MAVG_0,WS_PE_3Y_MAVG_0,WS_PE_5Y_MAVG_0,WS_PE_7Y_MAVG_0,FILING_DAYS,MOD_ID,EFFECTIVE_DATE_SAS,CW_EPS_0,CW_EPS_1,CW_EPS_2,
CW_EPS_3,CW_EPS_4,CW_EPS_5,EPSG_5TO4,EPSG_4TO3,EPSG_3TO2,EPSG_2TO1,EPSG_1TO0,EPSG_0TOFY1,EPSG_FY1TOFY2,
EPSG_MEDIAN_5TOFY2,EPSG_MEAN_5TOFY2,EPSG_MEDIAN_5TO0,EPSG_MEAN_5TO0,EPSG_MEDIAN_0TOFY2,EPSG_ACCELERATION_5TOFY2,FY0_ACTUAL_DATE,DAYS_TO_REPORT,
TIME_WEIGHT,EPSG_LTM,EPSG_NTM,EPSG_ACCELERATION_NTM,PE_ACTUAL,PE_MEDIAN_FY1,PE_MEDIAN_FY2,PE_MEDIAN_LTM,PE_MEDIAN_NTM,
PE_MEAN_FY1,PE_MEAN_FY2,PE_MEAN_LTM,PE_MEAN_NTM,CW_PE_1Y_MAVG_0,CW_PE_3Y_MAVG_0,CW_PE_5Y_MAVG_0,CW_PE_7Y_MAVG_0,PE_ACTUAL_REL_1Y,
PE_ACTUAL_REL_3Y,PE_ACTUAL_REL_5Y,PE_ACTUAL_REL_7Y,PE_MEDIAN_FY1_REL_1Y,PE_MEDIAN_FY1_REL_3Y,PE_MEDIAN_FY1_REL_5Y,
PE_MEDIAN_FY1_REL_7Y,PE_MEDIAN_FY2_REL_1Y,PE_MEDIAN_FY2_REL_3Y,PE_MEDIAN_FY2_REL_5Y,PE_MEDIAN_FY2_REL_7Y,PE_MEDIAN_LTM_REL_1Y,
PE_MEDIAN_LTM_REL_3Y,PE_MEDIAN_LTM_REL_5Y,PE_MEDIAN_LTM_REL_7Y,PE_MEDIAN_NTM_REL_1Y,PE_MEDIAN_NTM_REL_3Y,PE_MEDIAN_NTM_REL_5Y,
PE_MEDIAN_NTM_REL_7Y,PE_MEAN_FY1_REL_1Y,PE_MEAN_FY1_REL_3Y,PE_MEAN_FY1_REL_5Y,PE_MEAN_FY1_REL_7Y,PE_MEAN_FY2_REL_1Y,PE_MEAN_FY2_REL_3Y,
PE_MEAN_FY2_REL_5Y,PE_MEAN_FY2_REL_7Y,PE_MEAN_LTM_REL_1Y,PE_MEAN_LTM_REL_3Y,PE_MEAN_LTM_REL_5Y,PE_MEAN_LTM_REL_7Y,
PE_MEAN_NTM_REL_1Y,PE_MEAN_NTM_REL_3Y,PE_MEAN_NTM_REL_5Y,PE_MEAN_NTM_REL_7Y,PEG_MEDIAN_ACTUAL,PEG_MEDIAN_FY1,PEG_MEDIAN_FY2,
PEG_MEDIAN_LTM,PEG_MEDIAN_NTM,PEG_MEAN_ACTUAL,PEG_MEAN_FY1,PEG_MEAN_FY2,PEG_MEAN_LTM,PEG_MEAN_NTM,REPLICATION_FG) =
(SELECT DATE_POPULATION,CAMOID,FS_DATE_DOWNLOADING,CAM_COUNTRY_CD,CAM_COUNTRY,CAM_SECTOR,CAM_INDUSTRY_GROUP,CAM_INDUSTRY,CAM_SUB_INDUSTRY,GICS_SECTOR,
GICS_INDGRP,GICS_INDUSTRY,GICS_SUB_INDUSTRY,MSCI_COUNTRY,MSCI_REGION,CW_CAP_LOCAL_CO_0,CW_CAP_USD_CO_0,CW_CAP_USD_SEC_0,
CW_CAP_LOCAL_SEC_0,WS_CURRENCY,IB_DATE_FY0_0,IB_DATE_FY1_0,IB_DATE_0,IB_MEDIAN_FY1__0,IB_MEDIAN_FY2__0,IB_MEAN_FY1__0,IB_MEAN_FY2__0,
IB_A_EPS_ACTUAL_0,FS_PRICE_IBESCURR,CP_PE_1Y_MAVG_0,CP_PE_3Y_MAVG_0,CP_PE_5Y_MAVG_0,CP_PE_7Y_MAVG_0,WS_PE_1Y_MAVG_0,
WS_PE_3Y_MAVG_0,WS_PE_5Y_MAVG_0,WS_PE_7Y_MAVG_0,FILING_DAYS,MOD_ID,EFFECTIVE_DATE_SAS,CW_EPS_0,CW_EPS_1,CW_EPS_2,CW_EPS_3,CW_EPS_4,
CW_EPS_5,EPSG_5TO4,EPSG_4TO3,EPSG_3TO2,EPSG_2TO1,EPSG_1TO0,EPSG_0TOFY1,EPSG_FY1TOFY2,EPSG_MEDIAN_5TOFY2,EPSG_MEAN_5TOFY2,
EPSG_MEDIAN_5TO0,EPSG_MEAN_5TO0,EPSG_MEDIAN_0TOFY2,EPSG_ACCELERATION_5TOFY2,FY0_ACTUAL_DATE,DAYS_TO_REPORT,TIME_WEIGHT,EPSG_LTM,
EPSG_NTM,EPSG_ACCELERATION_NTM,PE_ACTUAL,PE_MEDIAN_FY1,PE_MEDIAN_FY2,PE_MEDIAN_LTM,PE_MEDIAN_NTM,PE_MEAN_FY1,PE_MEAN_FY2,
PE_MEAN_LTM,PE_MEAN_NTM,CW_PE_1Y_MAVG_0,CW_PE_3Y_MAVG_0,CW_PE_5Y_MAVG_0,CW_PE_7Y_MAVG_0,PE_ACTUAL_REL_1Y,PE_ACTUAL_REL_3Y,
PE_ACTUAL_REL_5Y,PE_ACTUAL_REL_7Y,PE_MEDIAN_FY1_REL_1Y,PE_MEDIAN_FY1_REL_3Y,PE_MEDIAN_FY1_REL_5Y,PE_MEDIAN_FY1_REL_7Y,
PE_MEDIAN_FY2_REL_1Y,PE_MEDIAN_FY2_REL_3Y,PE_MEDIAN_FY2_REL_5Y,PE_MEDIAN_FY2_REL_7Y,PE_MEDIAN_LTM_REL_1Y,PE_MEDIAN_LTM_REL_3Y,
PE_MEDIAN_LTM_REL_5Y,PE_MEDIAN_LTM_REL_7Y,PE_MEDIAN_NTM_REL_1Y,PE_MEDIAN_NTM_REL_3Y,PE_MEDIAN_NTM_REL_5Y,PE_MEDIAN_NTM_REL_7Y,
PE_MEAN_FY1_REL_1Y,PE_MEAN_FY1_REL_3Y,PE_MEAN_FY1_REL_5Y,PE_MEAN_FY1_REL_7Y,PE_MEAN_FY2_REL_1Y,PE_MEAN_FY2_REL_3Y,PE_MEAN_FY2_REL_5Y,
PE_MEAN_FY2_REL_7Y,PE_MEAN_LTM_REL_1Y,PE_MEAN_LTM_REL_3Y,PE_MEAN_LTM_REL_5Y,PE_MEAN_LTM_REL_7Y,PE_MEAN_NTM_REL_1Y,
PE_MEAN_NTM_REL_3Y,PE_MEAN_NTM_REL_5Y,PE_MEAN_NTM_REL_7Y,PEG_MEDIAN_ACTUAL,PEG_MEDIAN_FY1,PEG_MEDIAN_FY2,PEG_MEDIAN_LTM,PEG_MEDIAN_NTM,
PEG_MEAN_ACTUAL,PEG_MEAN_FY1,PEG_MEAN_FY2,PEG_MEAN_LTM,PEG_MEAN_NTM,'Y' FROM EQMODEL.TEST_PE_EPSG t1
-- LINE 3
WHERE t.parent_camo_id = t1.parent_camo_id AND t.fs_date_downloading = t1.fs_date_downloading AND camo_id IN
-- LINE 4
(SELECT MIN(camo_id) FROM EQMODEL.TEST_PE_EPSG t2 WHERE
-- LINE 5
t2.parent_camo_id = t1.parent_camo_id AND EPSG_MEDIAN_0TOFY2 IS NOT NULL AND t2.fs_date_downloading = t1.fs_date_downloading ))
-- LINE 6
WHERE fs_date_downloading = '20030507' AND EPSG_MEDIAN_0TOFY2 IS NULL
But, the same statement with Execute Immediate fails. However, this is working dynamically for this table structure.
Name Null? Type
----------------------------------------- -------- ---------------------
FACTSETID VARCHAR2(100)
DATE_POPULATION VARCHAR2(100)
CUSIPSEDOL VARCHAR2(100)
CAMOID VARCHAR2(100)
PARENT_CAMO_ID VARCHAR2(100)
COMPANY_NAME VARCHAR2(100)
FS_DATE_DOWNLOADING VARCHAR2(100)
CAM_COUNTRY_CD VARCHAR2(100)
CAM_COUNTRY VARCHAR2(100)
CAM_SECTOR VARCHAR2(100)
CAM_INDUSTRY_GROUP VARCHAR2(100)
CAM_INDUSTRY VARCHAR2(100)
CAM_SUB_INDUSTRY VARCHAR2(100)
GICS_SECTOR VARCHAR2(100)
GICS_INDGRP VARCHAR2(100)
GICS_INDUSTRY VARCHAR2(100)
GICS_SUB_INDUSTRY VARCHAR2(100)
MSCI_COUNTRY VARCHAR2(100)
MSCI_REGION VARCHAR2(100)
CW_CAP_LOCAL_CO_0 VARCHAR2(100)
CW_CAP_USD_CO_0 VARCHAR2(100)
CW_CAP_USD_SEC_0 VARCHAR2(100)
CW_CAP_LOCAL_SEC_0 VARCHAR2(100)
WS_CURRENCY VARCHAR2(100)
IB_DATE_FY0_0 VARCHAR2(100)
IB_DATE_FY1_0 VARCHAR2(100)
IB_DATE_0 VARCHAR2(100)
IB_DATE_A_EPS_ACTUAL VARCHAR2(100)
IB_MEDIAN_FY1__0 VARCHAR2(100)
IB_MEDIAN_FY1__1 VARCHAR2(100)
IB_MEDIAN_FY1__3 VARCHAR2(100)
IB_MEDIAN_FY1__6 VARCHAR2(100)
IB_MEDIAN_FY2__0 VARCHAR2(100)
IB_MEDIAN_FY2__1 VARCHAR2(100)
IB_MEDIAN_FY2__3 VARCHAR2(100)
IB_MEDIAN_FY2__6 VARCHAR2(100)
IB_MEDIAN_FY3__0 VARCHAR2(100)
IB_MEDIAN_FY3__1 VARCHAR2(100)
IB_MEDIAN_FY3__3 VARCHAR2(100)
IB_MEDIAN_FY3__6 VARCHAR2(100)
IB_FY1_NUM__0 VARCHAR2(100)
IB_FY1_NUM__1M VARCHAR2(100)
IB_FY1_NUM__3M VARCHAR2(100)
IB_FY1_NUM__6M VARCHAR2(100)
IB_FY1_UP__1M VARCHAR2(100)
IB_FY1_UP__3M VARCHAR2(100)
IB_FY1_UP__6M VARCHAR2(100)
IB_FY1_DOWN__1M VARCHAR2(100)
IB_FY1_DOWN__3M VARCHAR2(100)
IB_FY1_DOWN__6M VARCHAR2(100)
IB_FY2_NUM__0 VARCHAR2(100)
IB_FY2_NUM__1M VARCHAR2(100)
IB_FY2_NUM__3M VARCHAR2(100)
IB_FY2_NUM__6M VARCHAR2(100)
IB_FY2_UP__1M VARCHAR2(100)
IB_FY2_UP__3M VARCHAR2(100)
IB_FY2_UP__6M VARCHAR2(100)
IB_FY2_DOWN__1M VARCHAR2(100)
IB_FY2_DOWN__3M VARCHAR2(100)
IB_FY2_DOWN__6M VARCHAR2(100)
IB_FY3_NUM__0 VARCHAR2(100)
IB_FY3_NUM__1M VARCHAR2(100)
IB_FY3_NUM__3M VARCHAR2(100)
IB_FY3_NUM__6M VARCHAR2(100)
IB_FY3_UP__1M VARCHAR2(100)
IB_FY3_UP__3M VARCHAR2(100)
IB_FY3_DOWN__1M VARCHAR2(100)
IB_FY3_DOWN__3M VARCHAR2(100)
IB_FY3_DOWN__6M VARCHAR2(100)
IB_SHARES_0M VARCHAR2(100)
IB_SHARES_3M VARCHAR2(100)
FILING_DAYS NUMBER
MOD_ID NUMBER
CAMO_ID VARCHAR2(100)
EFFECTIVE_DATE_SAS VARCHAR2(9)
DAYS_TO_REPORT NUMBER
TIME_WEIGHT NUMBER
DEPTH_FY1_1M NUMBER
DEPTH_FY1_3M NUMBER
DEPTH_FY1_6M NUMBER
DEPTH_FY2_1M NUMBER
DEPTH_FY2_3M NUMBER
DEPTH_FY2_6M NUMBER
DEPTH_FY3_1M NUMBER
DEPTH_FY3_3M NUMBER
DEPTH_FY3_6M NUMBER
DEPTH_NTM_1M NUMBER
DEPTH_NTM_3M NUMBER
DEPTH_NTM_6M NUMBER
BREADTH_FY1_1M NUMBER
BREADTH_FY1_3M NUMBER
BREADTH_FY1_6M NUMBER
BREADTH_FY2_1M NUMBER
BREADTH_FY2_3M NUMBER
BREADTH_FY2_6M NUMBER
BREADTH_FY3_1M NUMBER
BREADTH_FY3_3M NUMBER
BREADTH_FY3_6M NUMBER
BREADTH_NTM_1M NUMBER
BREADTH_NTM_3M NUMBER
BREADTH_NTM_6M NUMBER
DEPTH_NTM_1M_RANK NUMBER
DEPTH_NTM_3M_RANK NUMBER
BREADTH_NTM_1M_RANK NUMBER
BREADTH_NTM_3M_RANK NUMBER
ESTIMATE_REVISION NUMBER
ESTIMATE_REVISION_RANK NUMBER
ESTIMATE_REVISION_PRCTL NUMBER
EFFECTIVE_DATE DATE
REPLICATION_FG CHAR(1)
May 11, 2003 - 7:02 pm UTC
look at line 41 of your code, I'd bet it is NOT execute immediate.
I'd bet it is theSql := theSql || ......
I'll bet varchar2(4000) isn't big enough to hold that update which appears to be about 4400 characters.
External Table
A reader, May 12, 2003 - 6:00 am UTC
Hi Tom,
I have problem when I want to query data from external table,
From [Query3]. ,It shows me that no data found, but I sure for that join have data.
Then ,I try to findout ,It seem like that problem is some field in query makes this query no data found
{ from this query is ATPT_MT_BATCH_DATE} .[Query2 ]
In the past, I ever found this problem when I first to implement External Table.
By that case, It cause some filed in DataType Number(10,2) as usually in SQL*Loader use statement
==> FIELD_A position(M:N) decimal external ":FIELD_A/100",
I resolve by use statement FIELD_A position(M:N) decimal external , then devide to(10,2) in view (FIELD_A/100) .
I think It should have better way to solve this problem , Pls suggest it to me too.
But, Now , This Problem is from Join query .While it can direct query from External Table. [Query1]
please correct me for this example..
Thank a lot.
[Query1]
16:19:36 40DWH>select ATPT_MT_BATCH_DATE
16:19:54 2 from V_GAIN_SALE_MASTER
16:20:00 3 where ATPT_ACCT = '0002299119998261006';
ATPT_MT_BAT
-----------
28-APR-2003
01-MAY-2003
02-MAY-2003
02-MAY-2003
06-MAY-2003
[Query2]
16:32:57 40DWH>(SELECT
16:33:12 2 ATPT_ORG,
16:33:12 3 ATPT_ACCT,
16:33:12 4 ATPT_LOGO,
16:33:12 5 ATPT_MT_EFF_DATE,
16:33:12 6 ATPT_MT_TXN_CODE,
16:33:12 7 ATPT_MT_AMOUNT,
16:33:12 8 -- ATPT_MT_BATCH_DATE,
16:33:12 9 ATPT_MT_POSTING_DATE,
16:33:12 10 ATPT_MT_SI_NBR,
16:33:12 11 ATPT_MT_PMT_REFERENCE_NBR,
16:33:12 12 ATPT_MT_DEPT,
16:33:12 13 GAIN_PRI_NAME_LINE_1,
16:33:12 14 GAIN_PRI_NAME_LINE_2,
16:33:12 15 GAIN_CYCLE,
16:33:12 16 GAIN_FRAUD_IND,
16:33:12 17 GAIN_BLK_CODE_1_2
16:33:12 18 FROM
16:33:13 19 V_GAIN_SALE_MASTER, V_GAIN_MASTER
16:33:13 20 WHERE ATPT_MT_TXN_CODE in ('651','051','151','152') AND
16:33:13 21 ( ATPT_ORG = GAIN_ORG (+) ) AND
16:33:13 22 ( ltrim ( ATPT_ACCT , '000' ) = GAIN_ACCT_NMBR (+) ) AND
16:33:13 23 ( ATPT_LOGO = GAIN_LOGO (+) )
16:33:13 24 and ATPT_ACCT = '0002299119998261006'
16:33:13 25 );
ATP ATPT_ACCT AT ATPT_MT_EFF ATPT_MT_TXN_CODE ATPT_MT_AMOUNT ATPT_MT_POS ATPT_MT_SI_NBR AT
--- ------------------- -- ----------- ---------------- --------------- ----------- --------------- --
201 0002299119998261006 11 09-MAY-2003 651 106.15 09-MAY-2003 9024001
16:34:04 40DWH>ed
Wrote file editsql.buf
[Query3]
1 (SELECT
2 ATPT_ORG,
3 ATPT_ACCT,
4 ATPT_LOGO,
5 ATPT_MT_EFF_DATE,
6 ATPT_MT_TXN_CODE,
7 ATPT_MT_AMOUNT,
8 ATPT_MT_BATCH_DATE,
9 ATPT_MT_POSTING_DATE,
10 ATPT_MT_SI_NBR,
11 ATPT_MT_PMT_REFERENCE_NBR,
12 ATPT_MT_DEPT,
13 GAIN_PRI_NAME_LINE_1,
14 GAIN_PRI_NAME_LINE_2,
15 GAIN_CYCLE,
16 GAIN_FRAUD_IND,
17 GAIN_BLK_CODE_1_2
18 FROM
19 V_GAIN_SALE_MASTER, V_GAIN_MASTER
20 WHERE ATPT_MT_TXN_CODE in ('651','051','151','152') AND
21 ( ATPT_ORG = GAIN_ORG (+) ) AND
22 ( ltrim ( ATPT_ACCT , '000' ) = GAIN_ACCT_NMBR (+) ) AND
23 ( ATPT_LOGO = GAIN_LOGO (+) )
24 and ATPT_ACCT = '0002299119998261006'
25* )
16:40:04 40DWH>/
no rows selected
May 12, 2003 - 8:02 am UTC
you would really have to give me a nice concise testcase with which to reproduce. for example, something like:
I've got a file, it has data like this:
.......<actual data would be here>....
I'm using this external table definition:
.....<actual create table here>......
If I select on it using <query here>, I see this <data here>
but when I create this table < table create here> and insert this stuff in it <inserts here -- actual inserts so I can run them> and join <actual query here> I get nothing....
(many times, most times in fact, in the setup of this small test case -- people find their problem!)