sqlplus

基于Oracle数据库存储过程的创建及调用

流过昼夜 提交于 2020-04-25 06:30:55
基于Oracle数据库存储过程的创建及调用 [TOC] 1.PLSQL编程 1.1 概念和目的 什么是PL/SQL? PL/SQL(Procedure Language/SQL) PLSQL是oracle对sql语言的过程化扩展(类似于Basic) 指在SQL命令语言中增加了过程处理语句(如分支、循环等),使SQL语句具有过程处理能力。 1.2 程序结构 通过Plsql developer 工具盒Tset Window创建 程序模板或者用过语句在SQL windows编写。 提示:PLSQL语言的大小写是不区分的 PL/SQL 可以分为三个部分:声明部分、可执行部分、异常处理部分 -- Created on 2019/10/31 by ADMINISTRATOR declare -- Local variables here(声明变量,游标) i integer; begin -- Test statements here(处理异常) end; 其中declare 部分用来声明变量和游标(结果集类型变量),如果程序中无变量声明可去掉。 1.3 Hello World begin -- Test statements here --java system.out.println("hello world"); dbms_output.put_line('hello world');

Oracle11g客户端安装配置

六眼飞鱼酱① 提交于 2020-04-24 12:30:48
Oracle数据库管理员和开发者一定希望在自己台式电脑的Windows系统中搭建Oracle客户端工作环境。 Oracle客户端工作环境主要包括两个部分:1)Oracle数据库客户端软件,提供了Oracle客户端驱动和配置工具;2)PL/SQL Developer软件,在该软件中,可以很方便的查看和管理Oracle数据库对象,编写、调试和运行SQL语句。 一、Oracle数据库客户端的安装 1、下载软件安装包 Oracle数据库客户端软件包名是 win64_11gR2_client.zip ,可以从Oracle公司的官网下载,链接如下: < https://www.oracle.com/database/technologies/112010-win64soft.html> ; 或者登录C语言技术网,在资源下载栏目中可以下载。 安装Oracle数据库客户端软件不需要软件授权license,不存在破解版的说法。 2、解压运行安装程序 1)运行安装程序。 点击sertup运行后,会弹出一个DOS窗口,可能需要等几十秒。 2)如果出现了以下窗口,选“是(Y)”继续。 3)安装类型选择“管理员”。 4)语言选择“简体中文”和“英语”。 5)指定Oracle的基目录和软件安装位置,可以用缺省值,也可以如下图。 6)执行先决条件检查。 如果出现了“执行先决条件检查”失败,勾选“全部忽略

(转)plsql11 x64 安装和配置 解决OCI: not initialized

北城以北 提交于 2020-04-24 07:02:13
跟帖子一样,安装了pl/sql ,设置了oci.dll 以及 TNS_ADMIN,加入path后不能显示数据库连接。 安装 microsoft visual c++ redistributable 2010 x64 原贴: plsql11 x64 安装和配置 解决OCI: not initialized 下载了instantclient-basic-windows.x64-12.1.0.2.0.zip和plsqldeveloper11x64.zip 配置instantclient 解压instantclient到d:\instantclient_12_1 配置以下环境变量 TNS_ADMIN=d:\instantclient_12_1 PATH变量最后加 ;%TNS_ADMIN% 安装plsql 设置PLSQL Developer中设置Oracle_Home和OCI Library, 在tools/preference里,oracle-connection选项配置oracle home和oci library。 例如我的是oracle home:d:\instantclient_12_1,oci library:d:\instantclient_12_1\oci.dll。 配置tnsnames.ora 新建文本文件d:\instantclient_12_1\tnsnames.ora

CentOS7计划任务crontab

倾然丶 夕夏残阳落幕 提交于 2020-04-23 10:05:09
一、计划任务的基本概念 linux系统采用crond守护进程来控制系统和用户的计划任务,实现周期性的执行某种任务或处理某些事件。 Linux系统本身就有很多的计划任务,所以crond服务是默认安装和启动的。crond服务每分钟都会检查是否有需要执行的任务,如果有则自动执行该任务。执行以下命令可以看到crond服务的运行情况: systemctl status crond Linux下的计划任务分为两种:用户计划任务和系统计划任务。 二、用户计划任务 Linux的每个用户可以定义自己的计划任务,周期性的执行脚本或程序。计划任务的内容存放在crontab文件中,每个用户都有自己的crontab文件。 1、查看crontab文件 crontab -l [-u 用户名] root用户可以用-u参数查看指定用户的计划任务,如果没有-u参数,表示查看自己的计划任务。普通用户只查看自己的计划任务,不允许使用-u参数。 2、编辑crontab文件 crontab -e [-u 用户名] root用户可以用-u参数编辑指定用户的计划任务,如果没有-u参数,表示编辑自己的计划任务。普通用户只能编辑自己的计划任务,不允许使用-u参数。crontab缺省的编辑工具是vi。 3、删除crontab文件 crontab -r [-u 用户名] root用户可以用-u参数删除指定用户的计划任务,如果没有-u参数

Oracle使用fy_recover_data恢复truncate删除的数据

元气小坏坏 提交于 2020-04-23 04:41:58
(一)truncate操作概述 在生产中,truncate是使用较多的命令,在使用不当的情况下,往往会造成表的数据全部丢失,恢复较为困难。对于truncate恢复,常见的有以下几种方法可以进行恢复: 使用数据泵导入。该方法操作简单,前提是必须要有备份可用,并且会有数据的丢失; 使用RMAN进行不完全恢复。可将数据库恢复到truncate之前的时刻,但是恢复时间较长; 使用odu、prm-dul、GDUL等收费软件进行恢复; 使用fy_recover_data包; 使用RMAN进行异机恢复已在之前测试过,详见: https://www.cnblogs.com/lijiaman/p/11577001.html 。 (二)FY_Recover_Data介绍 FY_Recover_Data是国内Oracle ACE大佬黄玮(个人网站: http://www.hellodba.com )开发的一个package,该脚本专门用于对truncate的表进行恢复。 根据作者所述,其原理:如果我们已经有一套元数据及数据块,然后将被TRUNCATE的用户数据块的内容取代其用户数据块的内容,是否可以“骗”过Oracle,让它读出这些数据呢? 回顾一下表扫描的过程,这个方法应该是可行的。我们只要想办法构造出一个结构相同、且具有完整元数据信息和格式化了的用户数据块的傀儡表对象

While looping with dynamic CSV in sqlplus

非 Y 不嫁゛ 提交于 2020-04-17 19:30:19
问题 I'm new at sqlplus and I need a help. I have the select below, and I want to add a While looping to generate a CSV file for each day of the period. Can someone help me? Thanks! set pagesize 0 set colsep '|' set echo off set feedback off set linesize 1000 set trimspool on set headsep off define start_date = '01/01/2004' define end_date = '02/01/2004' define start_csv = TO_CHAR(TO_DATE('&start_date.','DD/MM/YYYY'), 'YYYY-MM-DD') define end_csv = TO_CHAR(TO_DATE('&start_date.','DD/MM/YYYY'),

While looping with dynamic CSV in sqlplus

老子叫甜甜 提交于 2020-04-17 19:28:32
问题 I'm new at sqlplus and I need a help. I have the select below, and I want to add a While looping to generate a CSV file for each day of the period. Can someone help me? Thanks! set pagesize 0 set colsep '|' set echo off set feedback off set linesize 1000 set trimspool on set headsep off define start_date = '01/01/2004' define end_date = '02/01/2004' define start_csv = TO_CHAR(TO_DATE('&start_date.','DD/MM/YYYY'), 'YYYY-MM-DD') define end_csv = TO_CHAR(TO_DATE('&start_date.','DD/MM/YYYY'),

Mysql和Oracle的区别

可紊 提交于 2020-04-17 13:15:25
【推荐阅读】微服务还能火多久?>>> 转自: https://blog.csdn.net/star1210644725/article/details/91899117 一、并发性 并发性是oltp数据库最重要的特性,但并发涉及到资源的获取、共享与锁定。 mysql: mysql以表级锁为主,对资源锁定的粒度很大,如果一个session对一个表加锁时间过长,会让其他session无法更新此表中的数据。 虽然InnoDB引擎的表可以用行级锁,但这个行级锁的机制依赖于表的索引,如果表没有索引,或者sql语句没有使用索引,那么仍然使用表级锁。 oracle: oracle使用行级锁,对资源锁定的粒度要小很多,只是锁定sql需要的资源,并且加锁是在数据库中的数据行上,不依赖与索引。所以oracle对并发性的支持要好很多。 二、一致性 oracle: oracle支持serializable的隔离级别,可以实现最高级别的读一致性。每个session提交后其他session才能看到提交的更改。oracle通过在undo表空间中构造多版本数据块来实现读一致性, 每个session查询时,如果对应的数据块发生变化,oracle会在undo表空间中为这个session构造它查询时的旧的数据块。 mysql: mysql没有类似oracle的构造多版本数据块的机制,只支持read

SQL*Plus script executed twice

吃可爱长大的小学妹 提交于 2020-04-16 03:21:07
问题 I'm trying to run a script using sqlplus. My script is a simple delete statement. I execute it by putting the following in my ksh terminal: sqlplus username/'password' @../sql/delete_societes.sql ../sql/delete_societes.sql is DELETE FROM f2020.SOCIETES; / For some reason, it runs twice, causing the output "0 lines deteleted" to be printed twice and causing errors when I try to do an insert instead of a delete. 回答1: Make your script do either; DELETE FROM f2020.SOCIETES / or DELETE FROM f2020

SQL*Plus script executed twice

烈酒焚心 提交于 2020-04-16 03:17:08
问题 I'm trying to run a script using sqlplus. My script is a simple delete statement. I execute it by putting the following in my ksh terminal: sqlplus username/'password' @../sql/delete_societes.sql ../sql/delete_societes.sql is DELETE FROM f2020.SOCIETES; / For some reason, it runs twice, causing the output "0 lines deteleted" to be printed twice and causing errors when I try to do an insert instead of a delete. 回答1: Make your script do either; DELETE FROM f2020.SOCIETES / or DELETE FROM f2020