我是在拥有了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_dre 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_d 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_d,
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_dre,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_d,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_dre,
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_d,
p_invcost,
p_dinvcost,
p_cinvcode,
p_invunit,
p_yongyou,
p_changerate,
p_creator,
sysdate);
end if;
commit;
end insert_update;
我写了一个存储过程,代码如下,这段代码在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_dre 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_d 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_d,
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_dre,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_d,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_dre,
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_d,
p_invcost,
p_dinvcost,
p_cinvcode,
p_invunit,
p_yongyou,
p_changerate,
p_creator,
sysdate);
end if;
commit;
end insert_update;
你要加方案名才可以看得到;如果不加方案名,那你要连接到你的用户:conn 你的用户/你的密码
如果还是上面的情况的话 我需要在存储过程中 进行适当更改就可以了吗?我的方案名为XTDETAIL
begin
select count(*)
into num
from XTDETAMSALL_DETAIL_2
WHERE UPCODE = p_upcode
and DITEM = p_ditem;
if num <> 0 then
update XTDETAIL.XTDETAMSALL_DETAIL_2
set XIALIAO = p_xialiao,
DINGE = p_dinge,
LLDW = p_lldw,
DMARK = p_d,
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;
else
insert into XTDETAIL.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
(……);
如何进行进行连接?
我是不是还需要知道XTDETAIL相对应的密码?
如 grant select,updaet,delete on XTDETAMSALL_DETAIL_2 to XTDETAIL ;
但是当 把用户名放置到存储过程中相应的xtdetamsall_detail_2前面的时候 却出现了错误
错误提示为”表或视图不存在“
请问这是一个什么情况?
我再plSQL中 用xtdetail用户进行登陆的时候 是可以进行登陆的
但是 当我在oracle9i直接登陆数据库的时候 用xtdetail用户进行登录的时候 说我的权限不够
请问这是一种什么情况?
需要在system 用户下 分配 给 XTDETAIL 相应的权限。
如 grant select,updaet,delete on XTDETAMSALL_DETAIL_2 to XTDETAIL ;
有可能是你当前window的current Schema是“XTDETAIL"
存储过程insert_update是在SYSTEM方案中,它在引用到XTDETAMSALL_DETAIL_2时,会
在SYSTEM方案中去找,当然找不到了。
建一个表XTDETAMSALL_DETAIL_2的同义词。
会不会对以前 使用这个用户登陆的人的操作有影响呢?还有就是 大家所说的创建“表XTDETAMSALL_DETAIL_2的同义词”是一个怎么回事?请高手多多指教!
建议LZ创建XTDETAIL用户后,授与此用户连接权限,以此用户登录数据库创建XTDETAMSALL_DETAIL_2表,然后执行此存储过程。
公共同义词全体用户可以存取语法: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;
“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楼