`
lucane
  • 浏览: 121392 次
  • 性别: Icon_minigender_1
  • 来自: 江湖
社区版块
存档分类
最新评论

一些ORACLE脚本

阅读更多
基本都是网上摘录来的,可能有自己的整理,谢谢作者
----------------------------------------------------------------SEPARATE-LINE----------------------------------------------------------------

强制删除Oracle当前用户
SELECT 'alter system kill session '''||sid||','||serial#||''';' FROM v$session WHERE username='USER';


这样得到脚本,然后保存成文件执行,然后再drop user ....

引用
模仿Java中String类的endsWith方法

CREATE OR REPLACE FUNCTION F_ENDSWITH(SRC    IN VARCHAR2,
                                      SUFFIX IN VARCHAR2 DEFAULT '00')
  RETURN BOOLEAN IS
  RESULT         BOOLEAN;
  N_SUFFIX_COUNT NUMBER;
  N_SRC_COUNT    NUMBER;
  V_STR_TMP      VARCHAR2(200);
BEGIN
  N_SUFFIX_COUNT := LENGTH(SUFFIX);
  N_SRC_COUNT    := LENGTH(SRC);
  V_STR_TMP      := SUBSTR(SRC,
                           N_SRC_COUNT - N_SUFFIX_COUNT + 1,
                           N_SUFFIX_COUNT);

  IF (V_STR_TMP = SUFFIX) THEN
    RESULT := TRUE;
  ELSE
    RESULT := FALSE;
  END IF;
  RETURN(RESULT);
END F_ENDSWITH;


引用
模仿Java中String类的startsWith方法

CREATE OR REPLACE FUNCTION F_STARTSWITH(SRC    IN VARCHAR2,
                                        PREFIX IN VARCHAR2) RETURN BOOLEAN IS
  RESULT         BOOLEAN;
  N_PREFIX_COUNT NUMBER;
  V_STR_TMP      VARCHAR2(200);
BEGIN
  N_PREFIX_COUNT := LENGTH(PREFIX);
  V_STR_TMP      := SUBSTR(SRC, 0, N_PREFIX_COUNT);

  IF (V_STR_TMP = PREFIX) THEN
    RESULT := TRUE;
  ELSE
    RESULT := FALSE;
  END IF;
  RETURN(RESULT);
END F_STARTSWITH;


引用
校验传入的字符串是否为合法的日期表示,或者能否转化为日期,还有待完善

CREATE OR REPLACE FUNCTION F_ISDATE(YYYYMMDD IN VARCHAR2,
                                    FORMAT   IN VARCHAR2 DEFAULT 'yyyymmdd')
  RETURN BOOLEAN IS
  FLAG     BOOLEAN DEFAULT FALSE;
  TMP_DATE VARCHAR2(10);
  YYYY     INT;
  MM       INT;
  DD       INT;
BEGIN
  BEGIN
    TMP_DATE := TRIM(YYYYMMDD);
    YYYY     := TO_NUMBER(SUBSTR(TMP_DATE, 1, 4));
    MM       := TO_NUMBER(SUBSTR(TMP_DATE, 5, 2));
    DD       := TO_NUMBER(SUBSTR(TMP_DATE, 7, 2));
  
    IF (MM >= 1 AND MM <= 12 AND DD >= 1 AND DD <= 31) THEN
      IF (MM = 4 OR MM = 6 OR MM = 9 OR MM = 11) THEN
        IF (DD <= 30) THEN
          FLAG := TRUE;
        END IF;
      ELSIF (MM = 2) THEN
        IF (MOD(YYYY, 100) <> 0 AND MOD(YYYY, 4) = 0 OR MOD(YYYY, 400) = 0) THEN
          IF (DD <= 29) THEN
            FLAG := TRUE;
          END IF;
        ELSIF (DD <= 28) THEN
          FLAG := TRUE;
        END IF;
      ELSE
        FLAG := TRUE;
      END IF;
    END IF;
  
  EXCEPTION
    WHEN OTHERS THEN
      FLAG := FALSE;
  END;
  RETURN(FLAG);
END F_ISDATE;


引用
校验传入的字符串是否为合法的身份证号码,包括15位和18位,还有待完善

'T'表示是符合校验规则身份证,'F'表示错误的号码,'NR'表示是不符合18位校验规则的
CREATE OR REPLACE FUNCTION F_ISIDCARD(AAC002       IN VARCHAR2, -- 传入的号码
                                      VALIDATOR_ON IN NUMBER DEFAULT 0) -- 是否开启18位校验器
 RETURN VARCHAR2 IS
  RESULT VARCHAR2(2);

  TYPE W IS VARRAY(18) OF INTEGER;
  TYPE A IS VARRAY(11) OF VARCHAR2(1);

  NUM_LEN INT;
  DOB     VARCHAR2(8);
  F17     VARCHAR2(17);
  I18     VARCHAR2(18);

  RW W;
  RA A;

  NUM_SUM INTEGER DEFAULT 0;

BEGIN

  NUM_LEN := LENGTH(AAC002);
  IF (NUM_LEN = 15 OR NUM_LEN = 18) THEN
  
    RW := W(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1);
    RA := A('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
  
    IF NUM_LEN = 15 THEN
      F17 := SUBSTR(AAC002, 1, 6) || '19' || SUBSTR(AAC002, 7, 9);
    ELSE
      F17 := SUBSTR(AAC002, 1, 17);
    END IF;
  
    DOB := SUBSTR(F17, 7, 8);
  
    IF F_ISDATE(DOB) AND VALIDATOR_ON = 0 THEN
      -- 如果出生日期正确,而且不进行18位校验
      RESULT := 'T';
    ELSIF F_ISDATE(DOB) AND VALIDATOR_ON = 1 THEN
      -- 如果出生日期正确,而且进行18位校验
      FOR I IN 1 .. 17 LOOP
        NUM_SUM := NUM_SUM + TO_NUMBER(SUBSTR(F17, I, 1)) * RW(I);
      END LOOP;
      I18 := F17 || RA(MOD(NUM_SUM, 11) + 1);
      IF NUM_LEN = 18 AND UPPER(AAC002) = I18 THEN
        RESULT := 'T';
      ELSE
        RESULT := 'NR';
      END IF;
    ELSE
      RESULT := 'F';
    END IF;
  ELSE
    RESULT := 'F';
  END IF;
  RETURN(RESULT);
END F_ISIDCARD;


引用
查看oracle中锁住的对象,并杀之

SELECT B.SID,
       B.MACHINE,
       C.OBJECT_NAME,
       A.ORACLE_USERNAME,
       A.LOCKED_MODE,
       B.OSUSER,
       'alter system kill session ''' || B.SID || ',' || B.SERIAL# || ''';'
  FROM V$LOCKED_OBJECT A, V$SESSION B, ALL_OBJECTS C
 WHERE A.SESSION_ID = B.SID
   AND A.OBJECT_ID = C.OBJECT_ID;


分享到:
评论

相关推荐

    linux下批量执行oracle脚本的shell脚本

    首先,我们来看标题中的"linux下批量执行oracle脚本的shell脚本",这指的是在Linux操作系统中,通过编写shell脚本来自动化执行一系列针对Oracle数据库的SQL命令。Shell脚本是Linux系统中的一种强大的自动化工具,它...

    nacos 适配 oracle 11g版本 ,附带oracle 脚本,亲测可用

    本教程将详细介绍如何在Nacos中适配Oracle 11g,并提供亲测可用的Oracle脚本。 首先,我们需要了解Nacos对数据库的依赖。Nacos默认使用H2数据库进行存储,但为了满足大规模生产环境的需求,通常会选择更为强大的...

    oracle脚本-oracle常用表及数据

    "oracle脚本-oracle常用表及数据"这个资源显然是为了帮助初学者或开发者熟悉Oracle数据库操作和常见用例而准备的。以下是对这个主题的详细解读: 1. **Oracle数据库基础知识**:Oracle数据库是一个基于SQL的数据库...

    oracle脚本oracle脚本oracle脚本oracle脚本

    oracle脚本oracle脚本oracle脚本oracle脚本oracle脚本

    JEECG 3.5.2 版本ORACLE脚本

    JEECG共享版本只提供了MYSQL的版本,MYSQL的数据类型和ORACLE使用起来还是不同的,本人自己转换了类型并修改了部分代码,使得平台在ORACLE环境下正常运行,提供大家分享。 ORACLE数据库导出文件用户名密码都是JEECG ...

    Oracle常见脚本精华.rar

    本文将基于"Oracle常见脚本精华.rar"这个压缩包文件中的内容,详细讲解Oracle数据库的一些重要脚本及其应用场景。 首先,Oracle常用脚本1.doc可能包含的是数据库的创建、初始化和管理脚本。在Oracle中,创建一个...

    Oracle常用脚本与语句

    Oracle常用脚本与语句Oracle常用脚本与语句Oracle常用脚本与语句Oracle常用脚本与语句Oracle常用脚本与语句Oracle常用脚本与语句Oracle常用脚本与语句Oracle常用脚本与语句Oracle常用脚本与语句Oracle常用脚本与语句...

    自动备份windows Oracle脚本

    自动备份windows Oracle脚本,可修改此脚本,并将其加入到wondows计划中,即可每日自动执行备份

    ermp项目oracle脚本

    【标题】"ermp项目oracle脚本"涉及的是在Oracle数据库环境下,针对ERMP(Enterprise Resource Management Project,企业资源管理项目)进行的特定数据库操作。这通常包括创建表、存储过程、触发器、索引等数据库对象...

    oracle 定时导出脚本

    ### Oracle定时导出脚本详解 #### 一、Oracle定时导出脚本基本结构与功能说明 在Linux环境下,为了实现Oracle数据库的自动化备份管理,通常会借助于shell脚本来完成定时导出任务。以下是一个典型的Oracle定时导出...

    收获,不止Oracle 脚本_20130427修正_请谨慎使用

    Oracle脚本,通常指的是SQL(Structured Query Language)脚本,是用于操作Oracle数据库的语言。它包含了创建、修改、查询和管理数据库对象的各种命令。这些脚本可以是单个SQL语句,也可以是一系列按照特定顺序执行...

    Oracle脚本变量使用示例

    了解如何在Oracle脚本中使用变量是提升效率的关键。本篇将深入讲解Oracle脚本中的变量使用,通过实例来帮助你更好地理解和应用。 1. **变量声明** 在Oracle中,变量在PL/SQL块内进行声明。基本格式如下: ```sql ...

    oracle批量插入数据脚本

    oracle批量生成数据脚本,oracle批量生成数据脚本,oracle批量生成数据脚本,oracle批量生成数据脚本。

    Oracle 常用脚本.zip

    在日常管理和维护Oracle数据库时,经常会用到一些脚本来完成数据备份、性能监控、表空间管理等任务。"Oracle 常用脚本.zip"这个压缩包很可能包含了这些实用的工具。 首先,让我们探讨一下Oracle数据库中的脚本基本...

    shell 自动备份oracle 脚本

    在这个场景下,"shell自动备份Oracle脚本"是实现这一目标的关键工具。Red Hat Enterprise Linux 5(RHEL5)是一个稳定的操作系统平台,它支持各种自动化任务,包括Oracle数据库的备份。 首先,我们来看`back.sh`,...

    Oracle DBA脚本大全

    本资源“Oracle DBA脚本大全”是DBA们日常工作中不可或缺的工具集合,包含了各种用于管理Oracle数据库的实用脚本。这些脚本涵盖了数据库的创建、备份、恢复、性能优化、安全性设置等多个方面,对于提升DBA技能和提高...

    windows环境下Oracle数据库的自动备份脚本

    windows环境下Oracle数据库的自动备份脚本

    oracle自动安装脚本

    Oracle自动安装脚本是数据库管理员和系统管理员在部署Oracle数据库时常用的一种工具,它通过自动化流程简化了安装过程,减少了人为错误的可能性。Oracle数据库是一款功能强大的关系型数据库管理系统,广泛应用于企业...

Global site tag (gtag.js) - Google Analytics