Oralce创建模拟数据

create or replace  TYPE oneDate as object(TM DATE) ;

create or replace TYPE TABLE_ONEDATE as TABLE OF ONEDATE ;


create or replace  FUNCTION fu_getdatetable
      (dtb DATE
      ,dte DATE
      ,splicnum INT
      ,splic VARCHAR2)
      RETURN table_onedate pipelined IS
         dt_dtt   DATE ;
         dt_dtb   DATE ;
         dt_dte   DATE ;
         i_splicnum   INT ;
         c_splic   VARCHAR2(10) ;
         r_daterow onedate ;
      BEGIN
         dt_dtb := dtb;
         dt_dte := dte ;
         r_daterow:= oneDate(sysdate);
         i_splicnum := splicnum;
         c_splic := splic;
         IF dt_dte IS NULL THEN
            SELECT SYSDATE INTO dt_dte FROM dual ;
         END IF ;


         IF dtb>dt_dte THEN
            dt_dtt := dt_dte ;
            dt_dte := dt_dtb ;
            dt_dtb := dt_dtt ;
         END IF ;
         dt_dtt :=  dt_dtb ;


         loop
            SELECT (CASE upper(c_splic)
               WHEN 'YEAR' THEN add_months(dt_dtt,i_splicnum*12)
               WHEN 'Y' THEN add_months(dt_dtt,i_splicnum*12)
               WHEN 'YY' THEN add_months(dt_dtt,i_splicnum*12)
               WHEN 'YYYY' THEN add_months(dt_dtt,i_splicnum*12)
               WHEN 'QUARTER' THEN add_months(dt_dtt,i_splicnum*3)
               WHEN 'Q' THEN add_months(dt_dtt,i_splicnum*3)
               WHEN 'QQ' THEN add_months(dt_dtt,i_splicnum*3)
               WHEN 'MONTH' THEN add_months(dt_dtt,i_splicnum)
               WHEN 'M' THEN add_months(dt_dtt,i_splicnum)
               WHEN 'MM' THEN add_months(dt_dtt,i_splicnum)
               WHEN 'WEEK' THEN dt_dtt + 7*i_splicnum
               WHEN 'W' THEN dt_dtt + 7*i_splicnum
               WHEN 'WK' THEN dt_dtt + 7*i_splicnum
               WHEN 'WW' THEN dt_dtt + 7*i_splicnum
               WHEN 'DAY' THEN dt_dtt + i_splicnum
               WHEN 'DD' THEN dt_dtt + i_splicnum
               WHEN 'D' THEN dt_dtt + i_splicnum
               WHEN 'HOUR' THEN dt_dtt + i_splicnum/24
               WHEN 'HH' THEN dt_dtt + i_splicnum/24
               WHEN 'H' THEN dt_dtt + i_splicnum/24
               WHEN 'MINUTE' THEN dt_dtt + i_splicnum/(24*60)
               WHEN 'MI' THEN dt_dtt + i_splicnum/(24*60)
               WHEN 'N' THEN dt_dtt + i_splicnum/(24*60)
               WHEN 'SECOND' THEN dt_dtt + i_splicnum/(24*60*60)
               WHEN 'SS' THEN dt_dtt + i_splicnum/(24*60*60)
               WHEN 'S' THEN  dt_dtt + i_splicnum/(24*60*60)
               WHEN 'MILLISECOND' THEN dt_dtt + i_splicnum/(24*60*60*1000)
               WHEN 'L' THEN dt_dtt + i_splicnum/(24*60*60*1000)
               WHEN 'MS' THEN dt_dtt + i_splicnum/(24*60*60*1000)
               ELSE  dt_dtt + i_splicnum
               END )
               INTO dt_dtt FROM dual ;
            IF dt_dtt>dt_dte THEN exit ;  END IF ;
            r_daterow.tm:=dt_dtt ;
            pipe ROW (r_daterow) ;
         END loop ;
         RETURN ;
   END fu_getdatetable ;
   
create or replace 
FUNCTION F_Random_Data(in_text IN number) RETURN   number
IS
BEGIN
        IF in_text>0.5 THEN
            RETURN 593-(in_text-0.5)/5;
        ELSE
            RETURN 593+in_text/5;
        END IF;
END F_Random_Data;


alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';


select F_Random_Data(DBMS_RANDOM.VALUE()) d,tm from table(fu_getdatetable(sysdate-1,sysdate,1,'h'));


insert into ST_RIVER_R(STCD,TM,Z)
select '62919414',tm,F_Random_Data(DBMS_RANDOM.VALUE()) d from table(fu_getdatetable(to_date('2013-11-25','yyyy-mm-dd'),to_date('2015-03-16 16:00:00','yyyy-mm-dd hh24:mi:ss'),1,'h'))

update ST_RIVER_R set Z=trunc(Z,2) where STCD='62919414';


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Oracle数据库中导入Excel数据可以使用以下方法: 1. 将Excel文件保存为csv格式,然后使用SQL*Loader或外部表功能进行导入。 SQL*Loader是Oracle提供的一个命令行工具,可以将批量数据快速地加载到Oracle表中。可以通过对控制文件进行配置,将csv文件中的字段映射到表中的列,并设置加载规则。 外部表允许在Oracle中创建一个“虚拟表”,并将csv文件作为其数据源。可以像操作普通表一样对其进行查询、插入、更新和删除等操作,实现Excel数据与Oracle表的无缝连接。 2. 使用Oracle Data Integrator(ODI)工具,选择对应的Excel插件进行导入。 ODI是Oracle提供的一个ETL(抽取、转换、加载)工具,可以从多个数据源中抽取数据并将其加载到目标数据库中。使用ODI导入Excel数据需要安装对应的Excel插件,并创建数据连接、物理连接和拓扑结构等组件,然后在ODI Studio中进行配置作业和转换任务。 3. 使用Oracle BI Publisher,通过HTTP或FTP方式连接到Excel文件并导入。 Oracle BI Publisher是一款企业级报表设计和分发工具,可以将Excel文件作为报表数据源,并通过与数据源通信的报表模板生成报表。可以通过HTTP或FTP方式访问Excel文件,并将其导入到目标数据库中。 以上方法都可以在Oracle数据库中导入Excel数据,根据具体需求选择合适的方式进行操作。需要注意的是,在导入过程中需要注意保证数据的一致性和完整性,并且注意对中文等非Ascii码字符的处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值