注册 登录
编程论坛 Oracle论坛

咨询这段代码里的问题

山金 发布于 2015-04-09 21:31, 4570 次点击
SELECT DISTINCT "GY_BQDM"."BQDM",   
         "GY_BQDM"."BQMC",
         "GY_BQDM"."PXXH"
    FROM "GY_BQDM",   
         "BY_FYKSDZ"  
   WHERE ( "GY_BQDM"."BQDM" = "BY_FYKSDZ"."BQDM" ) and   
         ( "BY_FYKSDZ"."XTXH" = :p_xtxh ) AND  
         ( "BY_FYKSDZ"."FYKS" = :p_ksdm ) AND  
         ( "BY_FYKSDZ"."SYPB" = 1 )  AND
         ( NVL("GY_BQDM"."ZFPB",0)<>1)
ORDER BY "GY_BQDM"."BQMC" ASC
:p_xtxh = '36.00000000000000000'
:p_ksdm = '2010902'

这段代码有3个疑问:
1、"GY_BQDM"."BQMC"之类的为什么加引号?有作用?
2、:p_xtxh 和:p_ksdm 前面的冒号是什么意思,必须加么?
3、最后 '36.00000000000000000'为什么小数点后那么多位?谢谢。
2 回复
#2
纳兰伽香2015-04-11 17:45
1.可以不加
2.那是一个完整的值  没有什么特殊含义
3.我也不懂
#3
凌风zx2015-04-13 17:33
加双引号是为了区分大小写,不加的话oracle会默认转大写有损效率
:p_ksdm这应该是个整体
单引号里面的应该是字符串不是数所以应该是有特殊用处而不是简单的当做数字处理
1