oracle知识点

  操作数据库。。。时间和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无法恢复全文索引


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值