微前端架构如何改变企业的开发模式与效率提升
966
2022-10-27
SQL语句中关于字符串的拼接问题
将ORACLE数据库里面的XX信息( 表B,客户的数据库 )导入到“接口表”( A,自己系统的数据库 )中。此对照表的信息同ORACLE里面的XX数据表 信息一样 。此项操作由系统的系统管理员来完成,并且可以随时导入,对于已经导入成功的数据,不会重复导入。
表的结构:
CREATE TABLE A(ID NUMBER(20),UPDATED_BY NUMBER(20),UPDATE_DATE DATE,UPDATE_LOGIN NUMBER(20),CREATION_DATE DATE, CREATED_BY NUMBER(20),NAME VARCHAR2(60),Import_State VARCHAR2(1))
答案: foreach (DataRow dr in dsOra.Tables[0].Rows)
{ string str = "insert when (not exists(select 1 from A where A.ID='"+dr["ID"]+"'))then into A values('"+dr["ID"].ToString()+ "','" + dr["UPDATED_BY"].ToString() + "','" +dr["CREATED_BY"].ToString() + "',to_date('" + dr[" UPDATE_DATE "].ToString() + "','YYYY-MM-DDHH24:MI:SS'),'" + dr["UPDATE_LOGIN"].ToString() +"',to_date('" + dr[" CREATED _DATE"].ToString() +"','YYYY-MM-DD HH24:MI:SS'),'" +dr["NAME"].ToString() + "','" +dr["Import_State"].ToString() + "')select 1 from dual"; Append(str); Append(";"); }
//在string str语句之前已经把表B中的数据读取到一个DATASET中了,所以用dr[]来处理。(不可以直接操纵客户的数据库,所以用到了 DATASET )
小注:1、数字即NUMBER类型的,要按字符串的形式插入,如果按数字(转换到数据库sql操作的地方,不带引号)的方式,当列为空的时候,插入数据,会报错。
2、注意DATE类型数据的拼接方式。注意dr[]的写法。注意dual
3、SQL拼接大法:
Step1:括号先写上()
Step2:在括号内写上(, , , , , ,)
Step3:再写上单引号(,’ ‘,’ ‘,’ ‘,’ ‘,’ ‘,)
Step4:再在单引号的基础上添加双引号(,’” “‘,’” “‘,’” “‘,’” “‘,’” “‘,)
Step5:在4的基础上添加加号(,’”+ + “‘,’”+ +“‘,’”+ +“‘,’”+ +“‘,’”+ +“‘,)
Step6:去掉括号前后的那个逗号(’”+ + “‘,’”+ +“‘,’”+ +“‘,’”+ +“‘,’”+ +“‘)
备注:其实数字拼接是 "+数字+"这种形式,但考虑到插入为空的情况,有时就要拼成字符串的形式
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~