精华内容
下载资源
问答
  • oracle存储过程+日期+定时任务Job oracle存储过程+日期+定时任务Job oracle存储过程+日期+定时任务Job
  • 表名LOAD_PL_FULL_LOG 表字段S_TIME 字段类型date 格式:YYYY-MM-DD HH24:MI:SS 需要这样写 select * from LOAD_PL_FULL_LOG where to_date(to_char(S_TIME, 'YYYY/MM/DD'), 'YYYY-MM-DD') = ...

    表名LOAD_PL_FULL_LOG
    表字段S_TIME
    字段类型date
    格式:YYYY-MM-DD HH24:MI:SS

    需要这样写

    select *
      from LOAD_PL_FULL_LOG
     where to_date(to_char(S_TIME, 'YYYY/MM/DD'), 'YYYY-MM-DD') =
           to_date(to_char(sysdate, 'YYYY/MM/DD'), 'YYYY-MM-DD')
    
    展开全文
  • 我工作没多久。。。但近期建数据库的时候和DBA争论了一下,他们一直用的Varchar存储日期。...既然Oracle提供了Date来存储日期,为什么非要用Varchar呢? 想问下大家觉得哪类型存储日期好呢?还有其他原因吗?
  • 不是很明白,求大神解惑。 执行报错: ORA-00923: 未找到要求的 FROM 关键字 ORA-06512: 在 "AICHNL.LD_JUNK_TEST1", line 10 ORA-06512: 在 line 2 过程如下: create or replace procedure ld_junk_test1 is ...
  • Oracle存储过程

    2011-04-14 13:46:34
    Oracle存储过程 ,一些基本的东东 ,穿上来希望对大家有用
  • Oracle存储结构简介

    千次阅读 2018-01-18 11:12:53
    Oracle存储结构 Oracle存储结构分物理存储结构和逻辑存储结构。 物理存储结构:数据文件、日志文件和控制文件 逻辑存储结构:数据块 -> 区 -> 段 -> 表空间 -> 数据库 Oracle存储结构示意图 Oracle物理...

    Oracle存储结构

    Oracle存储结构分物理存储结构和逻辑存储结构。

    • 物理存储结构:数据文件、日志文件和控制文件
    • 逻辑存储结构:数据块 -> 区 -> 段 -> 表空间 -> 数据库

    Oracle存储结构示意图

    Oracle存储结构示意图


    Oracle物理存储结构

    1. 数据文件

    每一个ORACLE数据库有一个或多个物理的数据文件(data file)。一个数据库的数据文件包含全部数据库数据。逻辑数据库结构(如表、索引)的数据物理地存储在数据库的数据文件中。数据文件有下列特征:

    一个数据文件仅与一个数据库联系。
    一旦建立,数据文件不能改变大小.
    一个表空间(数据库存储的逻辑单位)由一个或多个数据文件组成。

    数据文件中的数据在需要时可以读取并存储在ORACLE内存储区中。例如:用户要存取数据库一表的某些数据,如果请求信息不在数据库的内存存储区内,则从相应的数据文件中读取并存储在内存。当修改和插入新数据时,不必立刻写入数据文件。为了减少磁盘输出的总数,提高性能,数据存储在内存,然后由ORACLE后台进程DBWR决定如何将其写入到相应的数据文件。

    2. 日志文件

    每一个数据库有两个或多个日志文件(redo log file)的组,每一个日志文件组用于收集数据库日志。日志的主要功能是记录对数据所作的修改,所以对数据库作的全部修改是记录在日志中。在出现故障时,如果不能将修改数据永久地写入数据文件,则可利用日志得到该修改,所以从不会丢失已有操作成果。

    日志文件主要是保护数据库以防止故障。为了防止日志文件本身的故障,ORACLE允许镜象日志(mirrored redo log),以致可在不同磁盘上维护两个或多个日志副本。

    日志文件中的信息仅在系统故障或介质故障恢复数据库时使用,这些故障阻止将数据库数据写入到数据库的数据文件。然而任何丢失的数据在下一次数据库打开时,ORACLE自动地应用日志文件中的信息来恢复数据库数据文件。

    Oralce两种日志文件类型:

    联机日志文件
    这是Oracle用来循环记录数据库改变的操作系统文件

    归档日志文件
    这是指为避免联机日志文件重写时丢失重复数据而对联机日志文件所做的备份

    Oracle有两种归档日志模式,Oracle数据库可以采用其中任何一种模式:

    NOARCHIVELOG
    不对日志文件进行归档。这种模式可以大大减少数据库备份的开销,但可能回导致数据的不可恢复

    ARCHIVELOG
    在这种模式下,当Oracle转向一个新的日志文件时,将以前的日志文件进行归档。为了防止出现历史“缺口”的情况,一个给定的日志文件在它成功归档之前是不能重新使用的。归档的日志文件,加上联机日志文件,为数据库的所有改变提供了完整的历史信息。

    在Oracle利用日志文件和归档日志文件来恢复数据库时,内部序列号可以起一个向导的作用。

    3. 控制文件

    每一ORACLE数据库有一个控制文件(control file),它记录数据库的物理结构,包含下列信息类型:

    数据库名; 
    数据库数据文件和日志文件的名字和位置; 
    数据库建立日期。 

    为了安全起见,允许控制文件被镜象。
    每一次ORACLE数据库的实例启动时,它的控制文件用于标识数据库和日志文件,当着手数据库操作时它们必须被打开。当数据库的物理组成更改时,ORACLE自动更改该数据库的控制文件。数据恢复时,也要使用控制文件。

    4. 参数文件

    除了构成Oracle数据库物理结构的三类主要文件外,Oracle数据库还具有另外一种重要的文件:参数文件。参数文件记录了Oracle数据库的基本参数信息,主要包括数据库名、控制文件所在路径、进程等。与旧版本的初始化参数文件INITsid.ora不同,在Oracle10g中还可以使用二进进制服务器参数文件,并且该服务器参数文件在安装Oracle数据库系统时由系统自动创建,文件的名称为SPFILEsid.ora,sid为所创建的数据库实例名。

    SPFILEsid.ora中的参数是由Oracle系统自动管理。如果想要对数据库的某些参数进行设置,则可能过OEM或ALTER SYSTEM命令来修改。用户最好不要用编辑器进行修改。

    Oracle逻辑存储结构

    Oracle逻辑存储结构示意图

    Oracle逻辑存储结构示意图

    一、数据块(data blocks)

      数据块是Oracle数据库逻辑存储结构中的最小单位,也是执行数据库输入输出的最小存储单位。通常Oracle数据块是操作系统块的整数倍。数据块的标准大小被写入到初始化参数DB_BLOCK_SIZE中,Oracle允许在同一个数据库中存在不同大小的数据块,与标准块大小不同的就是非标准块。
      
    二、数据区(extent)

      数据区是由一组连续的Oracle数据块所构成的Oracle存储结构,由一个或多个数据块组成。一个或多个数据区组成一个段,当段中所有空间被使用完后,Oracle系统将自动为该段分配一个新的数据区,可见,数据区是Oracle存储分配的最小单位。

    三、段(segment)

      段是由一个或多个数据区构成的,它不是存储空间的分配单位,而是一个独立的逻辑存储结构,用于存储表、索引或簇等占用空间的数据对象。一个段只属于一个特定的数据对象,每当创建一个具有独立段的数据对象时,Oracle将为它创建一个段。
      

    • 索引段:索引段中包含了用于提高系统性能的索引。一旦建立索引,系统自动创建一个以该索引的名字命名的索引段。
    • 回滚段:回滚段中保存了回滚条目,Oracle将修改前的旧值保存在回滚条目中。利用这些信息,可以撤销未提交的操作,以便为数据库提供读入一致性和回滚未提交的事务,即用来回滚事务的数据空间。当一个事务开始处理时,系统为之分配回滚段,回滚段可以动态创建和撤销。
    • 临时段:当执行创建索引。查询等操作时,Oracle可能会使用一些临时存储空间,用于暂时性地保存解析过的查询语句以及在排序过程中产生的临时数据,Oracle系统将在专门用于存储临时数据的表空间中为操作分配临时段。

    四、表空间(tablespace)

      表空间是Oracle数据库的最大逻辑划分区域,通常用来存放数据表、索引、回滚段等数据对象。一个表空间由一个或多个数据文件(操作系统物理存储结构)组成,一个数据文件只属于一个表空间。表空间的大小等于所有从属于它的数据文件大小的总和。

    展开全文
  • V_DATE DATE; SELECT TRUNC(SYSDATE,'MM') INTO V_DATE FROM DUAL;SELECT LAST_DAY(SYSDATE) INTO V_DATE FROM DUAL;SELECT TRUNC(ADD_MONTHS(SYSDATE,-1),'MM') INTO V_DATE FROM DUAL;SELECT LAST_DAY(ADD_M...
    V_DATE  DATE; 
    SELECT TRUNC(SYSDATE,'MM') INTO V_DATE FROM DUAL;
    SELECT LAST_DAY(SYSDATE) INTO V_DATE FROM DUAL;

    SELECT TRUNC(ADD_MONTHS(SYSDATE,-1),'MM') INTO V_DATE FROM DUAL;
    SELECT LAST_DAY(ADD_MONTHS(SYSDATE,-1)) INTO V_DATE FROM DUAL;

    SELECT TRUNC(ADD_MONTHS(SYSDATE,-11),'MM') INTO V_DATE FROM DUAL;
    SELECT LAST_DAY(ADD_MONTHS(SYSDATE,-11)) INTO V_DATE FROM DUAL;

    SELECT TRUNC(ADD_MONTHS(SYSDATE,-12),'MM') INTO V_DATE FROM DUAL;
    SELECT LAST_DAY(ADD_MONTHS(SYSDATE,-12)) INTO V_DATE FROM DUAL;

    转载于:https://www.cnblogs.com/hanyun/archive/2013/03/08/2949457.html

    展开全文
  • Oracle_Database_11g_SQL日期和时间的存储与处理。
  • 这里通过一个例子展示将ORACLE存储转化为MYSQL存储过程的一些必须修改的地方。 ORACLE存储过程 修改后的MYSQL存储过程 两者比较: 语法格式上的不同与修改: 1、CREATE OR REPLACE 改为 CREATE 和 2、入参:入参中...

    不同数据库的存储过程有不同的格式,数据类型。这里通过一个例子展示将ORACLE存储转化为MYSQL存储过程的一些必须修改的地方。
    ORACLE存储过程

    修改后的MYSQL存储过程

    两者比较:

    语法格式上的不同与修改:

    1、CREATE OR REPLACE 改为 CREATE 和DROP IF EXISTS
    2、入参:入参中的IN 要删除,类型要转换为MYSQL支持的类型,比如VARCHAR2等类型改成VARCHAR(255)等mysql类型
    3、局部变量定义:IS定义变量改为declare并移动到begin后面的行

    4、异常处理: oracle中的异常处理要修改为mysql中的hanlder方式
    EXCEPTION WHEN OTHERS THEN ROLLBACK;声明方式修改为 DECLARE EXIT HANDLER FOR SQLEXCEPTION ROLLBACK;
    5、–注释:要在–后增加空格 修改为 — 空格注释
    另外常见的还有,
    变量的赋值 oracle的:=赋值需要改为在开头增加set关键字赋值
    游标定义: CURSOR cur1 IS 游标定义修改为mysql格式DECLARE cur1 CURSOR FOR
    打开和获取游标:需要修改为open cur1并增加接收的变量FETCH ur1 INTO cur1

    6、常见函数上的不同:
            1、获取当前时间在mysql中使用NOW()函数
            2、mysql不存在DECODE函数,使用IF函数或者case when来等价替换。
            3、日期函数处理
    to_date(UPDATEDATE,’yyyy-mm-dd hh24:mi:ss’)” 修改为对应的:date_format(UPDATEDATE, ‘%Y%m%d %H%i%s’)
    时间相减使用TIMESTAMPDIFF函数,例如TIMESTAMPDIFF(SECOND,ENDDATE,NOW())
            4、nvl 修改为 IFNULL
            5、chr() 修改 CHAR()
            6、||字符串连接要改为使用CONCAT函数
            7、获取时间的毫秒数使用UNIX_TIMESTAMP,时间的加减要使用date_add和date_sub
            8、decode替换为if函数,或者case when then end

    7、语法细节上的不同:
    MySQL中from 后的表如果是(select…….)这种子查询,那么后面必须有别名;
    rownum要使用limit来设法等价替换

    还有很多不能列举,如果修改后报错,可以根据报错到网上查询原因,使用二分法定位到报错的行,并结合mysql的文档 https://dev.mysql.com/doc/refman/5.7/en/preface.html 来解决。或使用Debugger for MySQL软件来debugger逐行运行查看定位.

    https://blog.csdn.net/shy_snow/article/details/78262644

    展开全文
  • create or replace procedure add_zd(soid in number,sdate in date,ye in number, monthsr in number,monthzc in number) as  begin  dbms_output.put_line(sdate); ... insert into allso( soid,sodate,ye,s,
  • 日期遍历表结构 实现语句 –`创建表 CREATE OR REPLACE PROCEDURE CREATE_DATE( START_DATE IN STRING, --生成日期的起始日期 END_DATE IN STRING)--生成日期截至日期 AS v_date DATE; --日期变量 v_year VARCHAR...
  • oracle表中,把日期用char形式存储有什么好处? 类似char(10) 2017-05-14
  • Oracle数据库中存储结构、运行机制、日期相关的函数、序列、表的操作、事务等接单介绍
  • shell调用oracle存储过程案例

    千次阅读 2019-11-13 10:34:40
    shell调用oracle存储过程案例 #!/usr/bin/ksh 否则将参数赋给指定变量 if [ $# -lt 5 ];then echo “[date][ERRO][数据装载脚本传入了错误的参数$*]” echo " 正确调用格式: exec_proc.ksh [存储过程名称] [数据库...
  • 要求写一个存储过程 往这个测试表中插入数据 从2007年1月1日到2008年1月17日 循环插入 V1 V2 V3 V4(季度) V5(一年中的第几周) V6(星期几) V7(是否周六日) V8(上一月) V9(本月最后一天) 2007年01月01日 ...
  • 存储过程中使用date日期类型的参数,需要定义日期类型date的变量重新赋值一次,赋值的过程貌似会做一次转换,之后才能正常使用,不然使用这个日期查询结果不准确,经常会得到无效的结果。 CREATE OR REPLACE ...
  • oracle存储超长文本

    千次阅读 2020-03-24 10:54:23
    我们在Oracle数据库存储的字符数据一般是用VARCHAR2。VARCHAR2既分PL/SQL Data Types中的变量类型,也分Oracle Database中的字段类型,不同场景的最大长度不同。 在Oracle Database中,VARCHAR2 字段类型,...
  • oracle 存储过程 游标

    2013-09-04 05:49:28
    我现在的想法是 存储过程 通过游标 读取相同的人 所有记录 然后每条对比,日期间隔小于一个月的记录其ID 最后通过 ID再读取内容! 但在用游标时 不会读取游标下一行的内容! 请教各位大神,这个业务该怎么实现...
  • Oracle存储过程基本语法

    万次阅读 2018-08-03 15:12:23
    oracle 存储过程基本语法 存储过程如同一门程序设计语言,同样包含了数据类型、流程控制、输入和输出和它自己的函数库。 --------------------基本语法-------------------- 一.创建存储过程 create procedure ...
  • 主要介绍了oracle 创建,删除存储过程,参数传递,创建,删除存储函数,存储过程和函数的查看,包,系统包等相关资料,需要的朋友可以参考下
  • .net 调用Oracle存储过程

    千次阅读 2014-03-07 12:38:04
    在.NET中调用Oracle9i存储过程经验总结(1)  在.NET中调用Oracle9i存储过程可以用多个数据提供者,比如OralceClient,OleDb。本文将用OralceClient为例。.NET语言用C#。   一、调用一个带输入、输出参数的存储过程 ...
  • oracle判断日期函数、存储过程例子

    千次阅读 2008-12-15 10:43:00
    一、判断日期函数例子 SQL> CREATE OR REPLACE FUNCTION is_date (parmin VARCHAR2) 2 RETURN NUMBER 3 IS 4 val DATE; 5 BEGIN 6 val := TO_DATE (NVL (parmin, a), yyyy-mm-dd hh24:mi:ss); 7 RETURN 1; 8 ...
  • Oracle存储过程转成Sqlserver存储过程

    千次阅读 2010-05-20 10:28:00
    Oracle存储过程转成Sqlserver存储过程 1.日期转换Oracle: TO_NUMBER(TO_CHAR(SYSDATE, YYYYMMDD))SqlServer:CAST(CONVERT(CHAR(8),GETDATE(), 112) AS INT) 注:其中‘YYYYMMDD’格式 对应1122.ROWID转换Oracle...
  • linux shell 执行oracle存储过程

    万次阅读 2012-05-07 22:16:22
    #### 说 明:执行oracle存储过程 #### 输入参数:{数据库tns}{数据库用户名}{数据库密码}{存储过程名}{批处理日期} #### 输出参数:存储过程执行结果 function exe_proc { oracle_sid=$1 user_name=$2 user_pwd=$3 ...
  • 存储过程和存储函数是指存储在数据库中的供用户程序调用的子程序。 两者间区别在于存储函数可以return 值。 如果只有一个返回值,选择存储函数,否则使用存储过程。 1 存储过程1-1 创建语法create [or replace] ...
  • Oracle 存储过程中的细节-日期处理

    千次阅读 2012-11-23 10:19:27
    今天在存储过程中用 to_char来查询制定日期是星期几,本以为时没什么问题的,结果出现了自己不想要的问题。  select to_char(sysdate,'day','NLS_DATE_LANGUAGE=AMERICAN') day   into v_day  from dual...
  • 39.Oracle数据库SQL开发之 日期和时间的存储与处理——几个简单的存储检索日期.pdf
  • 系别   班级   学号   姓名   课程名称 ... Oracle数据库应用 ... 实验日期 ...  存储过程和...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 61,175
精华内容 24,470
关键字:

oracle存储日期