oracle数据库

Python 连接 Oracle 示例

笑着哭i 提交于 2020-04-06 05:53:25
二. Python 连 Oracle 的基本操作 2.1 DB连接和关闭DB连接 2.1.1 方法一:用户名,密码和监听 分开写 [root@rac1 u01]# cat db.py import cx_ Oracle db=cx_ Oracle .connect('system','oracle','192.168.2.42:1521/dave') print db.version db.close() [root@rac1 u01]# python db.py 10.2.0.1.0 2.1.2 方法二:用户名,密码和监听写在一起 [root@rac1 u01]# cat db.py import cx_ Oracle db=cx_ Oracle .connect('system/oracle@192.168.2.42:1521/dave') print db.version db.close() [root@rac1 u01]# python db.py 10.2.0.1.0 2.1.3 方法三:配置监听并连接 [root@rac1 u01]# cat db.py import cx_ Oracle tns=cx_ Oracle .makedsn('rac1',1521,'dave1') db=cx_ Oracle .connect('system','oracle',tns)

oracle中表空间管理,游标

≡放荡痞女 提交于 2020-04-05 19:58:59
一、表空间 oracle使用表空间来管理数据库的对象(表,序列,过程,函数,游标等)。 oracle的逻辑结构(看不见的):oracle数据库 =》 表空间 =》 表 序列 过程等对象。 oracle的物理结构(能看见):oracle 数据库 =》oracle的数据文件=》数据段=》数据区间=》数据块 。 oracle的数据文件分三种: 1、控制文件,以ctl结尾,控制文件中存储oracle运行所需要的字典,用户等对象。 2、日志文件,以log存储oracle操作产生的日志文件,还包含oracle的重做日志。 3、数据文件,存储用户或者系统创建的对象 表空间也是对象,需要存储到数据文件中,所以创建表空间的时候需要指定使用哪个数据文件。 创建表空间的语法: create tablespace 表空间名称 datafile '存储的位置\文件名.dbf' 指定表空间使用的数据文件,如果文件不存在会自动创建 size 50m 表空间的初始大小 autoextend on next 30m 表空间如果空间不够用了,下次自动扩展的大小 maxsize 300m指定表空间的最大存储空间; 例子: 1 -- 创建表空间 2 create tablespace tab_test01 3 --指定使用的数据文件 4 datafile 'D:\test_tab\test01.dbf' 5 -

【赵强老师】Oracle数据库的存储结构

独自空忆成欢 提交于 2020-04-04 13:21:38
Oracle的存储结构分为:物理存储结构和逻辑存储结构。 一、物理存储结构:指硬盘上存在的文件 数据文件(data file) 一个数据库可以由多个数据文件组成的,数据文件是真正存放数据库数据的。一个数据文件就是一个操作系统文件。数据库的对象(表和索引)物理上是被存放在数据文件中的。当我们要查询一个表的数据的时候,如果该表的数据没有在内存中,那么oracle就要读取该表所在的数据文件,然后把数据存放到内存中。通过下面的语句可以查看当前存在的数据文件和对应的表空间: select file_name,tablespace_name from dba_data_files; 联机日志文件(online redo log file) 一个数据库可以有多个联机日志文件,联机日志文件包含了重做记录(undo records).联机日志文件记录了数据库的改变,例如当一次意外导致对数据的改变没有及时的写到数据文件中,那么oracle就会根据联机日志文件中 的信息获得这些改变,然后把这些改变写到数据文件中.这也是联机日志文件存在的意义.联机日志文件中重做记录的唯一功能就是用来做实例的恢复.比如,一次系统的意外掉电,导致内存中的数据没有被写到数据文件中.那么oralce就会根据联机日志文件中的重做记录功能包数据库恢复到失败前的状态。可以通过下面的语句查看当前存在的日志文件和对应的日志组信息:

oracle中的函数

拟墨画扇 提交于 2020-04-04 10:28:08
一、单行函数 1.定义: 作用于一行,返回值为一个 注:以下所有的操作的表是Oracle数据库中自带的用户scott下的表 2.字符函数 --小写变大写 select upper('yes') from dual;--YES select lower('YES') from dual;--yes 3.数值函数 select round(26.18,1) from dual;--四舍五入,后面的参数为保留几位小数,26.2 select trunc(26.18,1) from dual;--直接截取,不在看后面面的位数,26.1 select mod(10,3) from dual;--求余,1 4.日期函数 系统时间:sysdate --查询emp表中所有员工入职距离现在几天 select sysdate-e.hiredate from emp e; --算出明天此刻 select sysdate+1 from dual; --查询emp表中所有员工入职距离现在几个月 select months_between(sysdate,e.hiredate) from emp e; --查询emp表中所有员工入职距离现在几个年 select months_between(sysdate,e.hiredate)/12 from emp e; --查询emp表中所有员工入职距离现在几周

如何写出高性能的sql语句?

痴心易碎 提交于 2020-04-03 10:30:03
如何写出高性能的sql语句? (1) 选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表. (2) WHERE子句中的连接顺序.: ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾. (3) SELECT子句中避免使用 ‘ * ‘: ORACLE 在解析的过程中, 会将'*' 依次转换成所有的列名, 这个工作是通过查询数据字典完成的, 这意味着将耗费更多的时间 (4) 减少访问数据库的次数: ORACLE在内部执行了许多工作: 解析SQL语句, 估算索引的利用率, 绑定变量 , 读数据块等; (5) 在SQL*Plus , SQL*Forms和Pro*C中重新设置ARRAYSIZE参数, 可以增加每次数据库访问的检索数据量 ,建议值为200 (6) 使用DECODE函数来减少处理时间:

查询数据库内历史同期和总计脚本

百般思念 提交于 2020-04-03 10:26:53
一、需求 1. 需求背景 需求一: 统计当前及历史同期业务量并在一个字段内展示; 需求二: 统计指定时间段内业务总量; 2. 最终效果展示 2.1 模拟表的表结构 本文以水果销量模拟真实的业务量 2.2 当前及历史同期效果展示 统计近7天内和历史同期各水果销量 2.3 某时间段内总计效果展示 统计2019年全年各水果销量总计 二.脚本 1. 当前及历史同期脚本 #!/usr/bin/ksh #运行示例:sh fru_calc_day.sh #本脚本用于统计每日及同期历史的水果销量 #统计时间从前D1天开始,默认为7,即统计从7天前开始 D1=7 #统计时间到前D2天,默认为1,即截止到前一天 D2=1 #历史数据,默认为12,即前12个月(去年) M=12 #日志时间格式 filedate=`date +"%Y%m%d%H%M"` #日志名 REPORT="/tmp/fru/report$filedate.log" #数据库用户名/密码,根据实际情况填写 DBUSER=dbuser DBPASSWD=password #数据库环境变量,根据实际情况填写 export ORACLE_SID=mydb export ORACLE_BASE=/oracle/app/10.2.0 export ORACLE_HOME=$ORACLE_BASE/db_1 export PATH=

oracle数据字典(笔记)

狂风中的少年 提交于 2020-04-03 04:19:11
数据字典是oracle数据库中最重要的组成部分,它提供了一些系统信息 动态性能视图记载了例程启动后的相关信息 数据字典记录了数据库的系统信息,它是只读表和视图的集合,数据字典的所有者为sys用户 用户只能在数据字典上执行查询操作(select 语句),而其维护和修改是由系统自动完成的 user_tables: 用于显示当前用户所拥有的所有表,它只返回用户所对应方案的所有表。 比如:select table_name from user_tables; all_tables 用于显示当前用户可以访问的所有表,它不仅会返回当前用户方案的所有表,还会返回当前用户可以 访问的其它方案的表 比如:select table_name from all_tables dba_tables 它会显示所有方案都拥有的表,但是查询这种数据库字典视图,要求用户必须是dba角色或是select any table 系统权限,例如:当用system用户查询数据字典视图dba_tables时,会返回system,sys, scott、、、方案所对应的数据库表 用户名,权限,角色 查询 dba_users 显示所有数据库用户的详细信息 dba_sys_privs 显示用户具有的系统权限 dba_tab_privs 可以显示用户具有的对象权限 dba_col_privs可以显示用户具有的列权限 dba_role

oracle备份恢复学习

泄露秘密 提交于 2020-04-03 04:18:31
备份和恢复是常遇到的操作,逻辑备份和物理备份。物理备份又分为冷备份和热备份。 一、逻辑备份,恢复 是指使用exp命令,简单易行,不影响正常的数据库操作。exp 用户名/密码 file=/home/oracle/dyan.dmp 可用必备命令参数owner=(ora,serv)只导出用户拥有的对象。 tables=(t_bss_userinfo,t_bss_mailinfo)只导出指定的表。 相应的恢复命令imp,imp 用户名/密码 file=/home/oracle/dyan.dmp。 owner只导入指定用户拥有的对象,tables只导入指定的表。 二、物理备份,恢复 直接备份数据库的文件。 冷备份,在数据库关闭的状态下,备份所有的数据库文件,包括数据文件、控制文件、联机redo log文件、Init.ora文件。需要管理员身份登录数据库,关闭数据库shutdown normal。不要退出,直接调用host接操作系统复制命令,或者!接操作系统命令复制备份。恢复也容易,在数据库关闭状态,将备份文件复制回来。 热备份,处于启动状态下的数据库进行备份,首先要保证数据库运行与归档模式,备份表空间的数据文件,最后备份控制文件。 shutdown immediate; 切换到归档模式startup mount; alter database archivelog; 打开数据库alter

使用instantclient_11_2 和PL/SQL Developer工具包连接oracle 11g远程数据库

三世轮回 提交于 2020-04-03 04:06:28
本文转自CSDN博客, http://blog.csdn.net/helifengwell/archive/2010/08/18/5820434.aspx 1,先到Oracle站点下载Instant Client : http://www.oracle.com/technology/global/cn/software/tech/oci/instantclient/index.html 依据你的操作系统选择不同的Instant Client版本号 下载回是一个压缩文件,解压之后的文件夹叫:D:/instantclient_11_2.放在你喜欢的文件夹就可以.比如:D:/instantclient_11_2 2.在D:/instantclient_11_2文件夹下新建文件夹network,在network文件夹下再新建admin文件夹,在admin文件夹下新建文件tnsnames.ora,使用文本编辑器打开写入例如以下内容: MWDB= (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.58)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = MWDB) ) ) 第一个黄色字块:表示定义远程server的在本地主机名 第二个黄色字块

ORCALE 相关操作

◇◆丶佛笑我妖孽 提交于 2020-04-02 15:12:24
卸载: 1,关闭oracle所有的服务。 打开注册表:regedit 打开路径: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ 删除该路径下的所有以oracle开始的服务名称 2,打开注册表 路径: HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE 删除该oracle目录 3,删除注册表中关于oracle的事件日志注册项: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\ 删除以oracle开头的所有内容 4,删除环境变量path中关于oracle的内容。 重新启动操作系统 删除Oracle_Home下的所有数据 删除C:\Program Files下oracle目录 5,删除开始菜单下oracle项 C:\Documents and Settings\All Users\「开始」菜单\程序\Oracle - Ora92 --Orcale启动与关闭 ------------------------------------------------------ --启动oracle数据库服务 net start oracleserviceora92 --启动oracle监听服务 lsnrctl start