项目测试过程发现,公司测试无问题,客户测试报错,经过现场分析,发现为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语句编写大助手"工具显然旨在为开发者提供便利,提高编写SQL的效率和准确性。这款工具可能包含了智能提示、自动完成、错误检查以及性能优化等功能,帮助用户在开发过程中避免常见错误,提升开发速度。 首先,...
Oracle SQL编写规范是指在编写SQL语句时的一些基本原则和方法,旨在提高SQL语句的执行效率和可读性。以下是Oracle SQL编写规范的详细解释: 1. 尽量用索引,特别在从大量数据中返回小部分数据时 使用索引可以大大...
Delphi程序员代码编写规范是一份指导程序员按照统一标准进行编程的文档,旨在提高代码的可读性、可维护性和团队协作效率。以下是对规范中各部分的详细解释: 一、序言 序言部分强调了这份规范的重要性,尽管它不是...
### SQL编写规范知识点详解 #### 一、概述 SQL(Structured Query Language)是一种用于管理和处理关系型数据库的标准语言。为了确保SQL脚本的质量、可读性和执行效率,制定一套标准的SQL编写规范至关重要。本文档...
sql语句编写.md
总结以上内容,ORACLE数据库SQL语句的编写优化涉及多方面知识,包括优化器的合理选择、高效的表访问方法、共享SQL语句的使用、索引的正确配置和应用、SQL内部操作的处理以及低效SQL语句的识别与优化等。在实际操作中...
### SQL语句编写优化与基本原理深度解析 #### 引言 SQL语句编写优化是数据库性能提升的关键一环,特别是在大数据量处理和高并发环境下,优化得当的SQL语句能够显著提升系统的响应速度和资源利用率。本文将基于王...
针对C语言编程,本文件详细规定了一系列的编码规范,旨在指导程序员如何规范地编写C语言代码,特别是在微控制器(MCU)软件开发领域。 首先,规范中对代码的排版提出了明确的要求。例如,在编写程序块时,推荐采用...
### 安全代码编写规范详解 #### 一、编写目的及适用范围 **编写目的**:为了提升软件产品的安全性,减少应用上线后可能面临的安全威胁,制定本安全代码编写规范。该规范旨在指导开发人员遵循一定的规则,确保软件在...
VHDL语言编写规范 VHDL(VHSIC Hardware Description Language)是用于描述数字电路的硬件描述语言,广泛应用于FPGA、ASIC和其他数字电路设计中。为确保VHDL语言的编写质量和可读性,需要遵守一定的编写规范。本文...
### Java代码编写规范详解 #### 一、引言 ##### 1.1 为何需要编码规范 在软件开发过程中,编码规范的制定至关重要。据统计,一个软件在其生命周期中,大约有80%的成本用于后期的维护工作。由于极少有软件能够...
### DBA对Oracle SQL编写规范的总结 #### 一、引言 在Oracle数据库开发过程中,遵循一套标准化的SQL编写规范对于提升代码质量、增强可读性和可维护性至关重要。本文档由一位经验丰富的数据库管理员(DBA)撰写,旨在...
本文档概述了SQL简单编写规范的关键方面,包括命名规则、数据操作语言示例、条件语句、异常处理以及注释的最佳实践。遵循这些指导原则可以帮助开发人员创建更易于维护、理解和扩展的数据库应用程序。通过标准化SQL的...
根据给定文件信息,以下是关于动态SQL语句编写的详细知识点: Mybatis的动态SQL技术是Mybatis框架中的一种强大特性,它允许用户在XML映射文件中编写灵活的SQL语句。动态SQL的实现方式多样,可以极大地简化复杂SQL...
这篇“Verilog-HDL编写规范(全)”涵盖了Verilog语言的各个方面,旨在提供一个全面的指导,帮助工程师们遵循最佳实践来编写高效、可读性强且易于维护的代码。 在Verilog-HDL编程中,以下是一些重要的知识点: 1. ...
程序编写规范化文档是为了提高软件开发的质量与效率,确保代码的可读性、可维护性和可移植性,这对开发团队而言至关重要。良好的编程习惯不仅能提升个人的编程水平,还能提高整个团队的工作效率。该文档首先介绍了...
C#代码编写规范是一套为.NET平台软件开发人员量身定做的编程规范,它涵盖了从命名规则到注释、编码、编程准则、代码包规范以及代码控制等多方面的详细规定。这些规范旨在统一开发设计过程,提高代码的可读性和可管理...
【Java代码编写规范】 编码规范在IT行业中,尤其是在Java编程领域,扮演着至关重要的角色。首先,一个软件的生命周期中,大部分成本在于维护阶段,因此,为了降低维护难度和提高效率,良好的编码规范必不可少。其次...
微型Sql Server查询分析器、数据库比较工具以及SQL语句编写助手是数据库管理员和开发人员日常工作中不可或缺的实用工具。这些工具能够帮助用户更高效、准确地执行SQL查询,进行数据库的对比与同步,并优化SQL语句的...