Oracle数据库中用户问题

cyxin2121921 2009-04-03 08:32:59
我是在拥有了system用户名的情况下,在XTDETAIL方案中创建了一个XTDETAMSALL_DETAIL_2这个表中,在all objects中可以看到我创建的表,但是在my objects中却看不到!
我写了一个存储过程,代码如下,这段代码在new->SQL Window中写入的时候,单击execute(F8)的时候是可以通过的,但是当在my objects下面的时候,右击该存储过程的时候竟然出现,表或视图不存在的错误提示,并且还有这样的错误:SQL Statement ignored错误
请问 是不是有用户的问题。之前的表就是在system作为用户名的情况下建立的,但是现在在my objects中却找不到!
请高手们帮我分析一下!
CREATE OR REPLACE PROCEDURE insert_update(p_upcode         in varchar2, --属装图号
p_upname in varchar2, --属装图名
p_ditem in number, --键号
p_dcode in varchar2, --图号
p_dname in varchar2, --图名
p_dmaterial in varchar2, --材料
p_dweight in number, --单重
p_dtweight in number, --总重
p_dquantity in number, --总数
p_dremark in varchar2, --备注
p_dother1 in varchar2, --工艺分工
p_productdwgcode in varchar2, --所属产品
p_g1 in varchar2,
p_g2 in varchar2, --领料单位
p_g3 in varchar2,
p_g4 in varchar2,
p_g5 in varchar2,
p_g6 in varchar2,
p_g7 in varchar2,
p_g8 in varchar2,
p_g9 in varchar2,
p_xialiao in varchar2, --下料尺寸
p_dinge in varchar2, --定额
p_lldw in varchar2, --领料单位
p_dmark in varchar2, --外购标记
p_invcost in number, --计划价
p_dinvcost in number, --计划总价
p_cinvcode in varchar2, --物料码
p_invunit in varchar2, --计量单位
p_yongyou in varchar2, --用友码
p_changerate in number, --转化率
p_creator in varchar2, --创建人
p_createtime in date, --创建日期
p_modified in varchar2, --修改人
p_modifytime in date --修改日期
) as
num number;
begin
select count(*)
into num
from XTDETAMSALL_DETAIL_2
WHERE UPCODE = p_upcode
and DITEM = p_ditem;
if num <> 0 then
update XTDETAMSALL_DETAIL_2
set XIALIAO = p_xialiao,
DINGE = p_dinge,
LLDW = p_lldw,
DMARK = p_dmark,
INVCOST = p_invcost,
DINVCOST = p_dinvcost,
CINVCODE = p_cinvcode,
INVUNIT = p_invunit,
YONGYOU = p_yongyou,
CHANGERATE = p_changerate,
MODIFIED = p_modified,
MODIFYTIME = sysdate
where UPCODE = p_upcode
and DITEM = p_ditem;
--UPCODE=p_upcode,UPNAME=p_upname,DITEM=p_ditem,DCODE=p_dcode,DNAME=p_dname,DMATERIAL=p_dmaterial,DWEIGHT=p_dweight,DTWEIGHT=p_dtweight,DQUANTITY=p_dquantity,DREMARK=p_dremark,DOTHER1=p_dother1,PRODUCTDWGCODE=p_productdwgcode,G1=p_g1,G2=p_g2,G3=p_g3,G4=p_g4,G5=p_g5,G6=p_g6,G7=p_g7,G8=p_g8,G9=p_g9,XIALIAO=p_xialiao,DINGE=p_dinge,LLDW=p_lldw,DMARK=p_dmark,INVCOST=p_invcost,DINVCOST=p_dinvcost,CINVCODE=p_cinvcode,INVUNIT=p_invunit,YONGYOU=p_yongyou,MODIFIED=p_modified,MODIFYTIME=sysdate;
else
insert into XTDETAMSALL_DETAIL_2
(UPCODE,
UPNAME,
DITEM,
DCODE,
DNAME,
DMATERIAL,
DWEIGHT,
DTWEIGHT,
DQUANTITY,
DREMARK,
DOTHER1,
PRODUCTDWGCODE,
G1,
G2,
G3,
G4,
G5,
G6,
G7,
G8,
G9,
XIALIAO,
DINGE,
LLDW,
DMARK,
INVCOST,
DINVCOST,
CINVCODE,
INVUNIT,
YONGYOU,
CHANGERATE,
CREATOR,
CREATETIME)
values
(p_upcode,
p_upname,
p_ditem,
p_dcode,
p_dname,
p_dmaterial,
p_dweight,
p_dtweight,
p_dquantity,
p_dremark,
p_dother1,
p_productdwgcode,
p_g1,
p_g2,
p_g3,
p_g4,
p_g5,
p_g6,
p_g7,
p_g8,
p_g9,
p_xialiao,
p_dinge,
p_lldw,
p_dmark,
p_invcost,
p_dinvcost,
p_cinvcode,
p_invunit,
p_yongyou,
p_changerate,
p_creator,
sysdate);
end if;
commit;
end insert_update;
...全文
237 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
cyxin2121921 2009-04-08
  • 打赏
  • 举报
回复
在调用这个存储过程的时候出现了这样一个错误:
“Warning: ociexecute(): OCIStmtExecute: ORA-06502: PL/SQL: 数字或值错误 : 字符到数值的转换错误 ORA-06512: 在line 1 in d:\myweb\a\cost\include\compute.php on line ”
请问该如何解决这个问题?
我在网络上找了很多 但是 具体解决办法很少,并且有些东西 也不是很清楚!
http://topic.csdn.net/u/20090331/14/88c3e354-7fa8-4fe0-aea0-5ec06671156f.html?seed=1282781867
的14楼
cyxin2121921 2009-04-07
  • 打赏
  • 举报
回复
我刚才通过system用户名来登陆了plsql以后,我再myobjects->users->XTDETAIL->objects->produres->insert_update中看到了一这个insert_update存储过程,左上角是一个绿色的图标,edit时候没有错误报错;并且在system中看到了的insert_update存储过程的左上角有一个叉,edit这个的时候还没有执行成功,报错:视图不存在。那这种情况的话 我该如何在程序中表示呢?
changeking 2009-04-07
  • 打赏
  • 举报
回复
加入用户为hj,创建一个同义词,首先应该给hj用户授予访问emp表权限,以scott用户身份登录数据库,执行以下命令. sql>grant all on emp to hj; 再以hj用户身份登录数据库,执行下列命令: sql>create synonym emp for scott.emp; 现在hj用户可以使用下面的语句访问scott用户的emp表了. sql>select *from emp;

如果用户拥有足够权限,就可创建公有同义词. DBA可以创建公共同义词(Public Synonym).
公共同义词全体用户可以存取语法:SQL> create public synonym 公共同义词名 for 代替项;

SCOTT: SQL> grant select on payment to public;

SYSTEM: SQL> create public synonym payment for scott.payment;

现在所有用户可以使用下面的语句访问scott用户的payment表了.
SQL>select *from payment;
changeking 2009-04-07
  • 打赏
  • 举报
回复
利用DBA身份建立公共同义词,用Schema Manager或者SQL GRANT命令分配相应的优先权即可查询到该表
richard_first 2009-04-07
  • 打赏
  • 举报
回复
不建议LZ在system用户下执行这个存储过程,而且也不建议LZ在system用户下创建XTDETAIL用户所属的表及存储过程。
建议LZ创建XTDETAIL用户后,授与此用户连接权限,以此用户登录数据库创建XTDETAMSALL_DETAIL_2表,然后执行此存储过程。
cyxin2121921 2009-04-07
  • 打赏
  • 举报
回复
如果我现在对我的XTDETAIL表进行授权的话
会不会对以前 使用这个用户登陆的人的操作有影响呢?

还有就是 大家所说的创建“表XTDETAMSALL_DETAIL_2的同义词”是一个怎么回事?

请高手多多指教!
cyxin2121921 2009-04-07
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 jdsnhan 的回复:]
select owner,table_name from dba_tables where table_name='XTDETAMSALL_DETAIL_2' 看看owner到底是谁
[/Quote]
是XTDETAIL这个用户,而我是在登陆system用户下建立的这个'XTDETAMSALL_DETAIL_2' 表的
Angly1018 2009-04-06
  • 打赏
  • 举报
回复
学习
IT农夫 2009-04-06
  • 打赏
  • 举报
回复
表XTDETAMSALL_DETAIL_2是在XTDETAIL方案中创建的,owner应该是XTDETAIL,
存储过程insert_update是在SYSTEM方案中,它在引用到XTDETAMSALL_DETAIL_2时,会
在SYSTEM方案中去找,当然找不到了。
建一个表XTDETAMSALL_DETAIL_2的同义词。
zzyzgydotnet 2009-04-06
  • 打赏
  • 举报
回复
up
dingshaojun110 2009-04-05
  • 打赏
  • 举报
回复
学习中,顶下
taotie1225 2009-04-04
  • 打赏
  • 举报
回复
up
taotie1225 2009-04-04
  • 打赏
  • 举报
回复
up
jdsnhan 2009-04-04
  • 打赏
  • 举报
回复
select owner,table_name from dba_tables where table_name='XTDETAMSALL_DETAIL_2' 看看owner到底是谁
jdsnhan 2009-04-04
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 cyxin2121921 的回复:]
当用select* from xtdetail.xtdetamsall_detail_2的时候 是可以执行的,无错误
但是当 把用户名放置到存储过程中相应的xtdetamsall_detail_2前面的时候 却出现了错误
错误提示为”表或视图不存在“
请问这是一个什么情况?
[/Quote]

这不应该
IT农夫 2009-04-04
  • 打赏
  • 举报
回复
这段代码在new->SQL Window中写入的时候,单击execute(F8)的时候是可以通过的
有可能是你当前window的current Schema是“XTDETAIL"
ruihuahan 2009-04-04
  • 打赏
  • 举报
回复
给普通用户相应的表权限,建立相应的同义词。
IT农夫 2009-04-04
  • 打赏
  • 举报
回复
以system登陆在XTDETAIL下面建立的objects,以XTDETAIL登陆是看不到的,
需要在system 用户下 分配 给 XTDETAIL 相应的权限。
如 grant select,updaet,delete on XTDETAMSALL_DETAIL_2 to XTDETAIL ;
bingogo19 2009-04-04
  • 打赏
  • 举报
回复
学习一下
thesecretblue 2009-04-03
  • 打赏
  • 举报
回复
学习中
加载更多回复(11)

17,377

社区成员

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

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