一个奇怪的查询现象,高手请进

zouchunhui 2007-06-19 03:16:59
select * from EAB.S_KHXX;

在pl/sql developer中单独查询可以用的.

但是我在存储过程中用到
insert into table1 (a)
select a from t_org_dealer , EAB.S_KHXX
where .....

他却说我这个EAB.S_KHXX没有定义.

具体出错信息如下:
Error: PL/SQL: SQL Statement ignored
Line: 155
Text: INSERT INTO T_CUST_CUSTOMER

Error: PLS-00201: 必须说明标识符 'EAB.S_KHXX'
Line: 208
Text: FROM T_CUST_CUSTOMER,EAB.S_KHXX
...全文
267 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ATGC 2007-06-21
  • 打赏
  • 举报
回复
在存储过程里,必须单独grant权限,不能grant role,不会生效的
zouchunhui 2007-06-20
  • 打赏
  • 举报
回复
delete from T_CAR_STORE where dealerno = strDealerNo;
/*0 接车;1 查定;2 收购;3 整修;4 复核;5 认证;6 销售*/
INSERT INTO T_CAR_STORE
(STOREIDID,
CARID,
CATTYPESETID,
DEALERNO,
BUYUPNO,
VIN,
PLACE,
CANO,
EGNO,
DISPLACEMENT,
RUNNING_MP,
COLOR,
PRODUCTION_DATE,
FIRST_REGISTER_DATE,
CAR_REMARK,
CAR_CATEGORIZE, /*0:未分类1:转售车2:预许可3:预认证4:许可车5:待认证 6:认证车*/
STORE_STATUS, /*0:在库1:已售出*/
CHECK_STATUS, /*0:未检测 1:检测通过(第一次检测就通过的)2:整备通过3:未通过(未整备)4:未通过(整备中)*/
CONFIRM_STATUS, /*0:未申请1:审核中2:驳回3:审核已通过*/
ALLOW_OR_CERTIFICATE, /*0:许可1:认证*/
REMARK,
INCARNO,
INCARTIME,
CUSERID,
CDATE,
MUSERID,
MDATE,
STATUS)
SELECT SEQ_STORE.NEXTVAL,
A.SGLSH,
d.CATTYPESETID ,
A.ZYDBM,
A.SGLSH,
A.VIN,
B.CD,
B.CPH,
B.FDJH,
B.FDJPL,
C.DJLC,
B.CSYS,
B.SCRQ,
B.SPRQ,
' ' CAR_REMARK,
DECODE(C.ZT, '2', '0', '3', '0', '4', '0', '5', '6', '6', '0') CAR_CATEGORIZE,
DECODE(C.ZT, '2', '0', '3', '0', '4', '0', '5', '0', '6', '1') STORE_STATUS,
DECODE(C.ZT, '2', '0', '3', '4', '4', '2', '5', '1', '6', '1') CHECK_STATUS,
DECODE(C.ZT, '2', '0', '3', '0', '4', '0', '5', '3', '6', '0') CONFIRM_STATUS,
DECODE(C.ZT, '2', '', '3', '', '4', '', '5', '1', '6', '') ALLOW_OR_CERTIFICATE,
'' REMARK,
A.HTBH,
A.CZSJ,
'1',
SYSDATE,
'',
'',
'1'
FROM EAB.x_Sght A, EAB.S_ZCXX B, EAB.D_RSCDJ C , t_car_cattypeset d
WHERE A.VIN = B.VIN and d.cartype = b.cx and d.status = 1
AND A.VIN = C.VIN
and a.zydbm = b.zydbm
and a.sglsh = c.sglsh and a.zydbm = c.zydbm
AND C.ZT NOT IN ('0', '1') AND A.ZT = '0'
and a.zydbm = strDealerNo ;

这是完整的SQL,

在cmd中运行是不会出错的.超级郁闷.作程序这么多年了,第一次遇上这个问题
doer_ljy 2007-06-20
  • 打赏
  • 举报
回复
SQLPlus等运行的 select 是根据你login的user的角色赋予权限的。
所以你得SQL是正确的。
但是到了PLsql中,角色赋予的权限就全部无效了。你必须对已用来执行PLSQL的那个User直接赋予访问EAB.S_KHXX的权限。
hyrongg 2007-06-19
  • 打赏
  • 举报
回复
没有给权限
ATGC 2007-06-19
  • 打赏
  • 举报
回复
把完整的SQL和表结构贴出来看看

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧