SQL存储过程定义的变量赋值问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL存储过程定义的变量赋值问题相关的知识,希望对你有一定的参考价值。
我在存储过程里定义了变量
wcfy NUMBER;
然后有写了一个赋值语句
wcfy:=select sum(ZSF+QTFY+CCF+CCBZFY+WCRLF) from LQSHDWCSQD where WCDH=dh_in;
为什么老是提示我下面这种东西?是什么意思?
错误:PLS-00103: Encountered the symbol "SELECT" when expecting one of the following:
( - + case mod new not null <an identifier>
<a double-quoted delimited-identifier> <a bind variable> avg
count current exists max min prior sql stddev sum variance
execute forall merge time timestamp interval date
<a string literal with character set specification>
<a number> <a single-quoted SQL string> pipe
<an alternatively-quoted string literal with character set specification>
<an alternatively-quo
行:2935
文本:wcfy:=select sum(ZSF+QTFY+CCF+CCBZFY+WCRLF) from LQSHDWCSQD where WCDH=dh_in;
sum(ZSF+QTFY+CCF+CCBZFY+WCRLF)这里面的字段都是NUMBER类型的
刚才试了isnull这种方法不行哦~而且NUMBER也是数值型的,不可能存在NULL的。也试过用CAST来强制转换了,也不行。
如果都是NUMBER类型的话也可以不用SUM,但是现在出错的问题不是这个问题~
就可以了(如果字段ZSF,QTFY,CCF,CCBZFY,WCRLF是在一条记录里的话 )。 参考技术A SQL中好像没有number型的吧,接近一点的话有个,numeric浮点型,鄙人愚昧!! 参考技术B wcfy:=select sum(isnull(ZSF,0)+isnull(QTFY+isnull(CCF,0)+isnull(CCBZFY,0)+isnull(WCRLF,0)) from LQSHDWCSQD where WCDH=dh_in;
换成这样试试本回答被提问者和网友采纳
以上是关于SQL存储过程定义的变量赋值问题的主要内容,如果未能解决你的问题,请参考以下文章