操作数据库。。。时间和String 类型之间的转换
date---->string TO_CHAR(DATE,'yyyy-MM-dd')
string---->date TO_DATE('string','yyyy-MM-dd')
string转为date型:to_date()
sprintf(sxrst_sql,"insert into %s(info_id, user_id,title,find_time)values(%d,%d,'%s',%d,to_date('%s','YYYY-MM-DD HH24:MI:SS'))",sx_RstTab.c_str(),info_id,userid,title,gather_time);
注:to_date()第一个参数为 char* 型
date转为string型:to_char()
select to_char(sysdate,'yyyy-MM-dd HH24:mm:ss') from dual
查询数据库 5天之内的消息 sysdate ---->系统时间
select * from table where date>=sysdate-4 and date<=sysdate
orcal--创建匿名--跨库访问
CREATE OR REPLACE SYNONYM CR_TASK FOR CELL.CR_TASK
DB2--创建匿名--跨库访问
CREATE NICKNAME DCCELL.CM_ORG FOR CELLSERVER.CELL.CM_ORG;
orcal 倒库---->
首先在自己电脑的----> 运行-->sqlplus / as sysdba-->到自己数据库执行语句
1.创建表空间
create tablespace dccell_space datafile 'g:\oracle\product\10.1.0\oradata\orcl\dccell_space.dbf' size 200m autoextend on next 10m maxsize unlimited;
--->创建用户
create user dccell identified by dccell default tablespace dccell_space;
--->给权限
grant all privileges, connect, resource, exp_full_database, imp_full_database to dccell;
在cmd 执行数据源
导入本机
---->imp dccell/dccell full=y file=f:\data\dccell.dmp
现在自己本机orcal--- net manage--建立数据库的连接。。。hsmis92就是自己建立的连接
导入不是本机的
----->imp dccell/dccell@hsmis92 file=e:\data\dccell.dmp full=y
导入
如果导入出现错误 先执行删除
drop user rone4 cascade;
create user dccell identified by dccell default tablespace dccell_space;
grant all privileges, connect, resource, exp_full_database, imp_full_database to dccell;
在执行导入。。
---->执行导出
exp dccell/dccell@hsmis92 file=路径 tables=表,表 (单表(双表用逗号隔开))(full=y)--导出一个库
exp cell/cell@ file=d:\tlds.dmp tables=(表1,表2,表3,) 用户名/密码@数据库路径(可以用iP)(例如10.141.135.62/tlpm) file=路径加名字 tables=要导的表
--->查看表 oracle
select WMSYS.WM_CONCAT(table_name) from user_tables where table_name like 'DS_%';
查找出数据库中所有表以ds_开头的表名称
把list转换成 json类型 在control类里面更改
public ModelAndView getQualityFeedbacks(HttpServletRequest request,
HttpServletResponse response){
String sql=request.getParameter("sql");
Map m = new HashMap();
m.put("success", Boolean.TRUE);
if(StringUtils.isNotBlank(sql)){
List list = new ArrayList();
list.add(commonDao.findBySQL(sql));
m.put("data", list);
}
String result = JSONSerializer.toJSON(m).toString();
response.setContentType("text/html;charset=utf-8");
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
try {
PrintWriter pw = response.getWriter();
pw.write(result);
pw.close();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
db2--->oracle
表结构
varchar->VARCHAR2
NUMBER
视图
create -> create or replace
脚本
sql_where ->是否用了特有的函数
db2 命令行执行
1--->db2 connect to <dbname> user <username> using <password> 命令连接数据库
2--->db2 -td;-cf <sql 脚本文件路径> -l <输出日志文件路径>
说明: -td:指定语句结束标志。因为一般sql都是以分号结尾,所以就写错“-td;”
-l <输出日志文件路径> 是可选的。
3--->db2 -td@ -f<sql存储过程文件路径> -l <输出日志文件路径>
说明: -td@ 指定语句结束标志。因为一般sql都是以@结尾,所以就写错“-td@”
-l <输出日志文件路径> 是可选的。
-----oracle 将列转换成行
例如 100 a 2022 ---> 2002 100 200
200 b 2022
可以用 decode
select substr(c_dwdm,0,6) as orgCd,
sum(decode(y_dbdm,'1',S_SGSL)) sdy,
sum(decode(y_dbdm,'2',S_SGSL)) zdy,
sum(decode(y_dbdm,'3',S_SGSL)) xdy
from VIEW_SGSJ
group by substr(c_dwdm,0,6)
查找回收站中的表
select object_name,original_name,partition_name,type,ts_name,createtime,droptime from recyclebin;
恢复表
flashback table test_drop to before drop ;或者
flashback table "dddddd" to before drop;
注意:必须9i 或者10g 以上版本 flashback无法恢复全文索引
date---->string TO_CHAR(DATE,'yyyy-MM-dd')
string---->date TO_DATE('string','yyyy-MM-dd')
string转为date型:to_date()
sprintf(sxrst_sql,"insert into %s(info_id, user_id,title,find_time)values(%d,%d,'%s',%d,to_date('%s','YYYY-MM-DD HH24:MI:SS'))",sx_RstTab.c_str(),info_id,userid,title,gather_time);
注:to_date()第一个参数为 char* 型
date转为string型:to_char()
select to_char(sysdate,'yyyy-MM-dd HH24:mm:ss') from dual
查询数据库 5天之内的消息 sysdate ---->系统时间
select * from table where date>=sysdate-4 and date<=sysdate
orcal--创建匿名--跨库访问
CREATE OR REPLACE SYNONYM CR_TASK FOR CELL.CR_TASK
DB2--创建匿名--跨库访问
CREATE NICKNAME DCCELL.CM_ORG FOR CELLSERVER.CELL.CM_ORG;
orcal 倒库---->
首先在自己电脑的----> 运行-->sqlplus / as sysdba-->到自己数据库执行语句
1.创建表空间
create tablespace dccell_space datafile 'g:\oracle\product\10.1.0\oradata\orcl\dccell_space.dbf' size 200m autoextend on next 10m maxsize unlimited;
--->创建用户
create user dccell identified by dccell default tablespace dccell_space;
--->给权限
grant all privileges, connect, resource, exp_full_database, imp_full_database to dccell;
在cmd 执行数据源
导入本机
---->imp dccell/dccell full=y file=f:\data\dccell.dmp
现在自己本机orcal--- net manage--建立数据库的连接。。。hsmis92就是自己建立的连接
导入不是本机的
----->imp dccell/dccell@hsmis92 file=e:\data\dccell.dmp full=y
导入
如果导入出现错误 先执行删除
drop user rone4 cascade;
create user dccell identified by dccell default tablespace dccell_space;
grant all privileges, connect, resource, exp_full_database, imp_full_database to dccell;
在执行导入。。
---->执行导出
exp dccell/dccell@hsmis92 file=路径 tables=表,表 (单表(双表用逗号隔开))(full=y)--导出一个库
exp cell/cell@ file=d:\tlds.dmp tables=(表1,表2,表3,) 用户名/密码@数据库路径(可以用iP)(例如10.141.135.62/tlpm) file=路径加名字 tables=要导的表
--->查看表 oracle
select WMSYS.WM_CONCAT(table_name) from user_tables where table_name like 'DS_%';
查找出数据库中所有表以ds_开头的表名称
把list转换成 json类型 在control类里面更改
public ModelAndView getQualityFeedbacks(HttpServletRequest request,
HttpServletResponse response){
String sql=request.getParameter("sql");
Map m = new HashMap();
m.put("success", Boolean.TRUE);
if(StringUtils.isNotBlank(sql)){
List list = new ArrayList();
list.add(commonDao.findBySQL(sql));
m.put("data", list);
}
String result = JSONSerializer.toJSON(m).toString();
response.setContentType("text/html;charset=utf-8");
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
try {
PrintWriter pw = response.getWriter();
pw.write(result);
pw.close();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
db2--->oracle
表结构
varchar->VARCHAR2
NUMBER
视图
create -> create or replace
脚本
sql_where ->是否用了特有的函数
db2 命令行执行
1--->db2 connect to <dbname> user <username> using <password> 命令连接数据库
2--->db2 -td;-cf <sql 脚本文件路径> -l <输出日志文件路径>
说明: -td:指定语句结束标志。因为一般sql都是以分号结尾,所以就写错“-td;”
-l <输出日志文件路径> 是可选的。
3--->db2 -td@ -f<sql存储过程文件路径> -l <输出日志文件路径>
说明: -td@ 指定语句结束标志。因为一般sql都是以@结尾,所以就写错“-td@”
-l <输出日志文件路径> 是可选的。
-----oracle 将列转换成行
例如 100 a 2022 ---> 2002 100 200
200 b 2022
可以用 decode
select substr(c_dwdm,0,6) as orgCd,
sum(decode(y_dbdm,'1',S_SGSL)) sdy,
sum(decode(y_dbdm,'2',S_SGSL)) zdy,
sum(decode(y_dbdm,'3',S_SGSL)) xdy
from VIEW_SGSJ
group by substr(c_dwdm,0,6)
查找回收站中的表
select object_name,original_name,partition_name,type,ts_name,createtime,droptime from recyclebin;
恢复表
flashback table test_drop to before drop ;或者
flashback table "dddddd" to before drop;
注意:必须9i 或者10g 以上版本 flashback无法恢复全文索引