免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 13495 | 回复: 11
打印 上一主题 下一主题

关于ora-12801的一个问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-03-21 18:47 |只看该作者 |倒序浏览
昨天执行一条语句出现了下面的提示,不知为什么,所有到这里来求助,请大家帮忙
select sysdate_ from purpacn
purpacn是我建的一个表;
错误提示如下:
ORA-12801: 平行查詢伺服器 P001 傳出錯誤 ORA-06552: PL/SQL: Statement ignored ORA-06553: PLS-302: 必須宣告成份 'SYSDATE_'

sysdate_是我写的一个function,定义如下
FUNCTION sysdate_
return number is
  systemdate number(8);
begin
  select to_char(sysdate,'yyyymmdd') into systemdate from dual where rownum<2;
  return systemdate;
end sysdate_;

用select sysdate_ from dual查询正常;
而且直接用select to_char(sysdate,'yyyymmdd') from purpacn查询也是正常的,不知道为什么,请各位高手指明出现这种状况的原因

论坛徽章:
0
2 [报告]
发表于 2006-03-22 09:52 |只看该作者
自己顶一下

论坛徽章:
0
3 [报告]
发表于 2006-03-23 16:17 |只看该作者

你的functiong是否声明了??

我觉得你的function的名字容易和关键字冲突!

论坛徽章:
0
4 [报告]
发表于 2006-03-24 01:47 |只看该作者
你在function里定义return number, 但是你把一个字符赋给sysmdate。 It dose not like right.


John

论坛徽章:
0
5 [报告]
发表于 2006-03-24 01:47 |只看该作者
Oops, it does not look right.


John

论坛徽章:
0
6 [报告]
发表于 2006-03-25 16:10 |只看该作者

回复 4楼 johnz02 的帖子

但是仅仅就是在这个表里会报错,如果我在其他表里用这个函数就没问题
比如说执行 select sysdate_ from ech 就能正常得出结果...
我怀疑是表的问题

论坛徽章:
0
7 [报告]
发表于 2006-03-25 16:16 |只看该作者

回复 5楼 johnz02 的帖子

sysdate_是我写的一个function,定义如下
FUNCTION sysdate_
return number is
  systemdate number(8);
begin
  select to_number(to_char(sysdate,'yyyymmdd')) into systemdate from dual where rownum<2;
  return systemdate;
end sysdate_;

改成这样,还是不行

论坛徽章:
0
8 [报告]
发表于 2006-03-26 04:10 |只看该作者
请问你的表中有没有sysdate_ column? 没有的话就白忙乎了。能不能把purpacn的DDL贴出来?


John

论坛徽章:
0
9 [报告]
发表于 2006-03-29 08:04 |只看该作者

回复 8楼 johnz02 的帖子

CREATE TABLE purpacn
    (pacid                          VARCHAR2(2) NOT NULL,
    pacprod                        VARCHAR2(15) NOT NULL,
    pacvend                        NUMBER(5,0) NOT NULL,
    pacdeff                        NUMBER(8,0) NOT NULL,
    pacddis                        NUMBER(8,0) NOT NULL,
    pacpric                        NUMBER(12,4) NOT NULL,
    pacper                         NUMBER(7,4) NOT NULL,
    pacum                          VARCHAR2(2) NOT NULL,
    pacfac                         VARCHAR2(2) NOT NULL,
    pacname                        VARCHAR2(60),
    pacsouc                        VARCHAR2(3) NOT NULL,
    paccur                         VARCHAR2(3) NOT NULL,
    paclno                         VARCHAR2(10) NOT NULL,
    paccby                         VARCHAR2(12) NOT NULL,
    paccdte                        NUMBER(8,0) NOT NULL,
    pacctm                         NUMBER(6,0) NOT NULL,
    pacpgm                         VARCHAR2(20) NOT NULL)
  PCTFREE     10
  PCTUSED     40
  INITRANS    1
  MAXTRANS    255
  TABLESPACE  gps
  STORAGE   (
    INITIAL     40960
    NEXT        65536
    PCTINCREASE 50
    MINEXTENTS  1
    MAXEXTENTS  505
  )
PARALLEL (DEGREE DEFAULT)
/

论坛徽章:
0
10 [报告]
发表于 2006-03-29 08:06 |只看该作者
没有sysdate_ column就白忙乎了?能解释一下吗?

原帖由 johnz02 于 2006-3-26 04:10 发表
请问你的表中有没有sysdate_ column? 没有的话就白忙乎了。能不能把purpacn的DDL贴出来?


John
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP