oracle 中怎样把查询结果当做已知量或赋值给某个变量? 25

如我想在updatestationsetgeom=addpoint(x,y,z)whereid=1中将x,y的位置用另一个表的某行的两个值代替应该怎么操作啊,谢谢了代码如... 如我想在update station
set geom=addpoint(x,y,z)where id=1
中将x,y的位置用另一个表的某行的两个值代替应该怎么操作啊,谢谢了
代码如图
展开
 我来答
quziguang

2012-02-21 · TA获得超过3481个赞
知道大有可为答主
回答量:4965
采纳率:84%
帮助的人:952万
展开全部
需要写存储过程,先声明两个变量v_x,v_y,然后用select into语句赋值给这两个变量.以下供参考:
declare
v_x NUMBER; --必须和addpoint(x,y,z)里面的x字段类型一致
v_y NUMBER; --必须和addpoint(x,y,z)里面的y字段类型一致
...
begin
select xxx,yyy into v_x, v_y from table; --把table表中xxx,yyy的值赋给v_x,v_y.你可以自己写查询
...
update station set set geom=addpoint(v_x,v_y,z)where id=1;
...
end
追问
SQL> create or replace procedure pro_into
as
declare
v_x number;
v_y number;
begin
select sta_long into v_x from sta_87 where id=2;
select sta_alt into v_y from sta_87 where id=2;
update station_87
set geom= addpoint(v_x,v_y,4214)where id=2;
end pro_into;
/
Warning: Procedure created with compilation errors
就报错了,帮忙看看有哪不对吗?多给分哦
追答
set geom= addpoint(v_x,v_y,4214)where id=2;
4214)后面是否要加一个空格
hk...7@sohu.com
2017-07-03 · TA获得超过267个赞
知道小有建树答主
回答量:228
采纳率:77%
帮助的人:48.4万
展开全部
加个判断就好了,可以用自带的异常。 EXCEPTION WHEN NO_DATA_FOUND THEN 变量 = NULL; END ;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
J_LD_P
2012-04-27 · TA获得超过109个赞
知道答主
回答量:103
采纳率:100%
帮助的人:42.9万
展开全部
存储过程里面定义局部变量不需要declare ,去掉declare 试试。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
idbd01
2012-02-21 · 超过17用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:52.5万
展开全部
update station set geom=addpoint(sta_87.sta_long,sta_87.sta_alt,z)where id=1
这样不行么?
更多追问追答
追问
TT 也不行,说是标示符无效,是不是我的pl/sql developer版本不对啊?
追答
你确定表名都对吧?
你那个_87都加了?
或者是都不用加?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式