SQL语句中关于字符串的拼接问题
2014-01-08 09:37
344 查看
要求:将ORACLE数据库里面的XX信息(表B,客户的数据库)导入到“接口表”(A,自己系统的数据库)中。此对照表的信息同ORACLE里面的XX数据表信息一样。此项操作由系统的系统管理员来完成,并且可以随时导入,对于已经导入成功的数据,不会重复导入。
表的结构:
答案: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:去掉括号前后的那个逗号(’”+
+ “‘,’”+ +“‘,’”+ +“‘,’”+ +“‘,’”+ +“‘)
备注:其实数字拼接是 "+数字+"这种形式,但考虑到插入为空的情况,有时就要拼成字符串的形式
表的结构:
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:去掉括号前后的那个逗号(’”+
+ “‘,’”+ +“‘,’”+ +“‘,’”+ +“‘,’”+ +“‘)
备注:其实数字拼接是 "+数字+"这种形式,但考虑到插入为空的情况,有时就要拼成字符串的形式
相关文章推荐
- SQL语句中关于字符串的拼接问题
- 一个关于sql语句的问题解决,包括:字符串拆分,游标
- 关于postgres一条sql语句中子查询的返回值不止一个,且拼接成相关规则的字符串
- sql语句,exec执行 拼接的字符串 输出参数 问题
- 解决存储过程中拼接的SQL字符串超长导致sql语句被截取的问题
- 关于sql 拼接字符串的问题
- 关于SQL语句的拼接问题
- java用字符串拼接SQL语句的特殊字符转义问题
- oracle数据库拼接sql语句字符串问题
- SQL语句中和字符串的拼接问题
- 关于No Dialect mapping for JDBC type :-9 hibernate执行原生sql语句问题
- 关于Qt使用QSqlQuery执行sql语句时出现out of memory的问题
- 一条SQL语句,关于字符分割关联多条记录的问题
- 关于SQL中 动态执行SQL语句并且获得动态SQL语句输出参数值的问题
- mybatis+0+null--------------mybatis中stutas==0是sql动态语句拼接问题
- 关于DbVisualizer 6.0.14中的SQL语句显示中文问题
- weblogic hibernate关于No Dialect mapping for JDBC type :-9 hibernate执行原生sql语句问题(www.50xiao.com)
- SQL语句练习实例之五 WMS系统中的关于LIFO或FIFO的问题分析
- 关于oracle sql语句查询时表名和字段名要加双引号的问题详解
- 关于String 拼接字符串的性能问题