游标问题 V_TEMP是varchar2型的,而游标中取的值是NUMBER型的,所以出现不匹配。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 加了也不行 to_char(CEIL(TO_NUMBER(TO_CHAR(act_insertdate, 'DDD')) / 7))一运行到 FETCH MYCUR 就出现出错 你的数据类型不匹配,V_TEMP是字符型的,而你的查询结果是数字型的,所以会报错,修改其中之一就可以了 TYPE V_CURSOR IS REF CURSOR; defCursor V_CURSOR; V_TEMP INTEGER:=0;<<================ to liuyi8903(西西): 还是报错 出现错误文字与格式字符串不匹配 把v_temp 改为integer类型或者number类型而且你where条件后面的日期也不对.我记得在存储过程里面给你传的参数V_BDATE和V_EDATE 是date类型的.因此to_char(t2ashipmentno_kpi.act_insertdate,'yyyy-mm-dd')就不需要了.如果你的t2ashipmentno_kpi.act_insertdate是date类型的话,就直接写成where t2ashipmentno_kpi.act_insertdate BETWEEN..... 把v_temp 改为integer类型或者number类型而且你where条件后面的日期也不对.我记得在存储过程里面给你传的参数V_BDATE和V_EDATE 是date类型的.因此to_char(t2ashipmentno_kpi.act_insertdate,'yyyy-mm-dd')就不需要了.如果你的t2ashipmentno_kpi.act_insertdate是date类型的话,就直接写成where t2ashipmentno_kpi.act_insertdate BETWEEN..... TYPE V_CURSOR IS REF CURSOR; MYCUR V_CURSOR; V_TEMP VARCHAR2(20); --V_DateField Varchar2(30);--日期变量 根据选择项不同选择日期字段 -- V_ToDate date; V_UNION VARCHAR2(20); V_TEMP2 VARCHAR2(1000); V_TEMP3 VARCHAR2(1000); V_TEMP4 VARCHAR2(1000); BEGIN V_SQL := ' SELECT 0 sign,''周'' '; V_TEMP2 := ' SELECT 1 sign,''按时到达'' '; V_TEMP3 := ' SELECT 2 sign,''延时到达'' '; V_TEMP4 := ' SELECT 3 sign,''总数'' '; V_UNION := ' union ';IF V_TYPE = 'C' THEN OPEN MYCUR FOR --SELECT DISTINCT CEIL(TO_NUMBER(TO_CHAR(act_insertdate, 'DDD')) / 7) --to_char(to_date(act_insertdate,'dd-mon-yy'),'IW') -- SELECT DISTINCT to_char(CEIL(TO_NUMBER(TO_CHAR(act_insertdate, 'DDD')) / 7)) FROM t2ashipmentno_kpi WHERE to_char(t2ashipmentno_kpi.act_insertdate,'yyyy-mm-dd') between V_BDATE AND V_EDATE; LOOP FETCH MYCUR INTO V_TEMP; EXIT WHEN MYCUR%NOTFOUND; V_SQL := V_SQL || ' ,' || V_TEMP; V_TEMP2 := V_TEMP2 || ' ,f_test(' || V_TEMP || ',1)'; V_TEMP3 := V_TEMP3 || ' ,f_test(' || V_TEMP || ',2)'; V_TEMP4 := V_TEMP4 || ' ,f_test(' || V_TEMP || ',3)'; END LOOP; 日期字段 说明 选择条件 格式 'ACT_InsertDate PACKINGLIST收到时间 Call Off Date 格式var 21-9月 -04 问一个有关oracle sql的小问题 一个自连接-左外连的问题 我怎么找不到我的数据啊,急,谢谢。 如何获得包和包中的所有参数(包括参数属性,比如游标定义)列表的sql语句。 发生01008错误,可咋看都没问题,求救高手!谢谢 关于表空间 dbca创建数据库的问题! 一个关于网站访问量 的问题 关于sql 哪里能下载Developer2000 请问nuique 与 primary key 有何异同?以下是我的结论,还有其它吗? 一个简单的问题,一佰分求助
)
一运行到 FETCH MYCUR 就出现出错
defCursor V_CURSOR;
V_TEMP INTEGER:=0;<<================
还是报错 出现错误文字与格式字符串不匹配
而且你where条件后面的日期也不对.我记得在存储过程里面给你传的参数V_BDATE和V_EDATE 是date类型的.因此to_char(t2ashipmentno_kpi.act_insertdate,'yyyy-mm-dd')就不需要了.
如果你的t2ashipmentno_kpi.act_insertdate是date类型的话,就直接写成where t2ashipmentno_kpi.act_insertdate BETWEEN.....
而且你where条件后面的日期也不对.我记得在存储过程里面给你传的参数V_BDATE和V_EDATE 是date类型的.因此to_char(t2ashipmentno_kpi.act_insertdate,'yyyy-mm-dd')就不需要了.
如果你的t2ashipmentno_kpi.act_insertdate是date类型的话,就直接写成where t2ashipmentno_kpi.act_insertdate BETWEEN.....
MYCUR V_CURSOR;
V_TEMP VARCHAR2(20);
--V_DateField Varchar2(30);--日期变量 根据选择项不同选择日期字段
-- V_ToDate date;
V_UNION VARCHAR2(20);
V_TEMP2 VARCHAR2(1000);
V_TEMP3 VARCHAR2(1000);
V_TEMP4 VARCHAR2(1000);
BEGIN
V_SQL := ' SELECT 0 sign,''周'' ';
V_TEMP2 := ' SELECT 1 sign,''按时到达'' ';
V_TEMP3 := ' SELECT 2 sign,''延时到达'' ';
V_TEMP4 := ' SELECT 3 sign,''总数'' ';
V_UNION := ' union ';
IF V_TYPE = 'C' THEN
OPEN MYCUR FOR
--SELECT DISTINCT CEIL(TO_NUMBER(TO_CHAR(act_insertdate, 'DDD')) / 7)
--to_char(to_date(act_insertdate,'dd-mon-yy'),'IW')
--
SELECT DISTINCT to_char(CEIL(TO_NUMBER(TO_CHAR(act_insertdate, 'DDD')) / 7))
FROM t2ashipmentno_kpi WHERE to_char(t2ashipmentno_kpi.act_insertdate,'yyyy-mm-dd') between V_BDATE AND V_EDATE;
LOOP
FETCH MYCUR
INTO V_TEMP;
EXIT WHEN MYCUR%NOTFOUND;
V_SQL := V_SQL || ' ,' || V_TEMP;
V_TEMP2 := V_TEMP2 || ' ,f_test(' || V_TEMP || ',1)';
V_TEMP3 := V_TEMP3 || ' ,f_test(' || V_TEMP || ',2)';
V_TEMP4 := V_TEMP4 || ' ,f_test(' || V_TEMP || ',3)';
END LOOP;
'ACT_InsertDate PACKINGLIST收到时间 Call Off Date 格式var 21-9月 -04