使用PL\SQL更新数据库中的日期,代码如下,老提示确实右括号缺失

updateT_JBXX_JBXXsetCSRQ=(selectsubstr(SFZJH,7,4)fromT_JBXX_JBXX||'-'||selectsubstr(S... update T_JBXX_JBXX
set CSRQ = (select substr(SFZJH, 7, 4)
from T_JBXX_JBXX||'-'||
select substr(SFZJH, 11, 2)
from T_JBXX_JBXX || '-' ||
select substr(SFZJH, 13, 2) from T_JBXX_JBXX

)
展开
 我来答
micro0369
2013-07-16 · TA获得超过1.2万个赞
知道大有可为答主
回答量:9250
采纳率:85%
帮助的人:3999万
展开全部
select substr(SFZJH, 7, 4)
from T_JBXX_JBXX||'-'||
select substr(SFZJH, 11, 2)
from T_JBXX_JBXX || '-' ||
select substr(SFZJH, 13, 2) from T_JBXX_JBXX

你这段代码什么意思啊 ?

应该是这样吧?

update T_JBXX_JBXX
set CSRQ =
substr(SFZJH, 7, 4)||'-'||substr(SFZJH, 11, 2) || '-' || substr(SFZJH, 13, 2)

试试看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
garfield0
2013-07-16 · TA获得超过208个赞
知道小有建树答主
回答量:161
采纳率:0%
帮助的人:105万
展开全部
是这要替换CSRQ字段,替换内容是3段字符串联接
我会这样写:
update T_JBXX_JBXX
set CSRQ = substr(SFZJH, 7, 4) +'-'+substr(SFZJH, 11, 2) +'-'+substr(SFZJH, 13, 2)

你的问题在于,3个select 没有用括号分别括起来,所以会有你说的提示,如果所需截取字符串就是当前行记录中的字段,不需要用select,直接使用截取函数就可以了。
试试吧
追问
你的这个写法也有问题啊,提示+无效字符
如果分别把他们括起来也是提示右括号缺失的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
信春哥_不挂科_
2013-07-16 · 超过21用户采纳过TA的回答
知道答主
回答量:51
采纳率:0%
帮助的人:56.1万
展开全部
T_JBXX_JBXX这个表只有一条记录吗,你的select语句没有条件限制,如果有多条记录的话,set语句肯定就错了啊,set后面必须要是一条确定的记录或者是null,多个值没法set了
更多追问追答
追问
记录有很多的,从每条记录里的SFZJH(身份证件号)字段中截取然和更新同一记录里的CSRQ字段,那我应该怎样才能一次更新多条记录呢??
追答
就按照一楼的写法就可以了。
update T_JBXX_JBXX
set CSRQ =
substr(SFZJH, 7, 4)||'-'||substr(SFZJH, 11, 2) || '-' || substr(SFZJH, 13, 2)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式