plslq 語句編寫規範

2021-09-01 13:39:39 字數 1732 閱讀 5487

專案測試過程發現,公司測試無問題,客戶測試報錯,經過現場分析,發現為plsql中編寫批量插入語句,

沒有明確指明表的字段導致。

因為客戶端資料表的字段順序和公司資料庫表字段順序不一致導致。

-1400- 位置=,ora-01400: cannot insert null into ("pmsdata"."tfz_grade_detail_rec_his"."score") stpb_id=3901430

原因:公司tfz_grade_detail_rec_his欄位的順序和平安不一致,導致不能插入正確值。

insert into tfz_grade_detail_rec_his

select v_id,

x.grin_id,

x.supply_id,

x.user_id,

x.score,

x.remark,

sysdate

from tfz_grade_user_result x

where x.stpb_id = i_stpb_id

and x.stpr_id = i_stpr_id

and x.bundle_code = i_bundle_code

and x.user_id = v.user_id; 公司

batch_id number(9) not null,

grin_id number(9) not null,

supply_id number(9) not null,

user_id number(9) not null,

score number(5,2) not null,

remark varchar2(4000),

cdate date default sysdate not null平安(

batch_id number(9) not null,

grin_id number(9) not null,

supply_id number(9) not null,

user_id number(9) not null,

remark varchar2(4000),

score number(5,2) not null,

cdate date default sysdate not null

)更改:

insert into tfz_grade_detail_rec_his

(batch_id,grin_id,supply_id,user_id,score,remark,cdate)

select v_id,

x.grin_id,

x.supply_id,

x.user_id,

x.score,

x.remark,

sysdate

from tfz_grade_user_result x

where x.stpb_id = i_stpb_id

and x.stpr_id = i_stpr_id

and x.bundle_code = i_bundle_code

and x.user_id = v.user_id;

指明要插入的表字段,是個好習慣,更規範。

深入分析:

導致公司和客戶端表字段順序不一致的原因是tfz_grade_detail_rec_his表之前已經客戶資料庫中,通過後續ddl更改,導致

表字段兩邊順序不一致。因此如果對原始表更改較大,或許先drop掉重新建表會好點。

SQL語句編寫規範

1.注釋 不換行的簡單注釋,在注釋文字前用 多行的注釋用 2.大小寫規範 sql語句中的所有保留字均需大寫,且不要使用縮寫 例 all,as,case,create,jion,left,right,not,on,out,scelect,table,view等 3.縮排與換行 將sql語句按照子句分行...

sql語句編寫規範

在使用sql查詢時,要提高查詢的效率,我們要盡可能的優化where後的子句,使查詢能走索引,索引查詢的效率更高.索引的優先順序 聚簇索引 非聚簇唯一索引 非聚簇非唯一索引 不走索引 具體包括 1.要使用索引,首先搞清楚,什麼情況下查詢走索引,這樣就能方便我們對己有的sql 優化.2.在where子句...

C 編寫規範

c 編寫規範 一 兩種命名風格 1.pascal風格 大駝峰命名法 包含乙個到多個單詞,每個單詞首字母大寫,其餘字母均小寫。例如 helloworld setname等等。2.camel風格小駝峰命名法 包含乙個到多個單詞,第乙個單詞首字母小寫,其餘單詞首字母大寫。例如 name productid...