当前位置:文档之家› ORACLE 包和包体的创建和使用

ORACLE 包和包体的创建和使用

ORACLE 包和包体的创建和使用
ORACLE 包和包体的创建和使用

create or replace package pack_one as --包头的声明

type cur is ref cursor; --定义一个动态游标,也只能是动态

type v_record is record( -- 定义一个记录类型(集合的一种)

v_name emp.ename%type,

v_sal emp.sal%type,

v_dname dept.dname%type

);

function my_fun(v_job varchar2) return cur; --定义一个方法

procedure my_pro(v_job in varchar2,my_cur2 out cur);--定义一个存储过种

end pack_one;--包头结束

create or replace package body pack_one as--创建一个包体

function my_fun(v_job varchar2) return cur--对方法的实现,注意是在包体的声明部分里操作

is

my_cur cur;--声明游标,因为还是在包的部分,所以直接声明即可

sql_cur varchar2(200);

begin

sql_cur:='select t1.ename,t1.sal,t2.dname from emp t1,dept t2 where t1.deptno=t2.deptno and t1.job='''||v_job||'''';--拼接SQL语句,重要注意引号的使用

dbms_output.put_line(sql_cur);--可以通过输出为调试拼接好的SQL语句

open my_cur for sql_cur;--打开游标

return(my_cur);--方法有返回值,要牢记

end my_fun;--方法的实现结束

procedure my_pro(v_job in varchar2,my_cur2 out cur)--对存储过程的实现

as

sql_cur varchar2(200);

begin

sql_cur:='select t1.ename,t1.sal,t2.dname from emp t1,dept t2 where t1.deptno=t2.deptno and t1.job='''||v_job||'''';

open my_cur2 for sql_cur;--打开游标,注意,打开的是传进来的参数,即我们把游标通过参数传出给调用环境因为是out

end my_pro;

begin

null;

end pack_one;--存储实现的结束

declare--下面是对包的调用调用其中的方法

v_cur pack_one.cur;--注意这里游标类型声明的方式

my_record pack_one.v_record;--同上,注意声明方式

begin

v_cur:=pack_one.my_fun('CLERK');--通过参数调过方法,传进的参数,会被接收因为是

in

loop

fetch v_cur into my_record;

exit when v_cur%notfound;

dbms_output.put_line(my_record.v_name||'--'||my_record.v_sal||'--'||my_record.v_ dname);

end loop;

end;

declare --下面是对包的调用,调用其中的合存储过程

temp_record pack_one.v_record;--同上,注意声明方式

my_cur2 pack_one.cur;--注意这里游标类型声明的方式

begin

pack_one.my_pro('CLERK',my_cur2);--通过传参,来调用,第一个参数是传进,第二个是用于接收传出的参数

loop

fetch my_cur2 into temp_record;

exit when my_cur2%notfound;

dbms_output.put_line(temp_record.v_name||'--'||temp_record.v_sal||'--'||temp_rec ord.v_dname);

end loop;

end;

oracle系统表和视图说明

1.视图的概述 视图其实就是一条查询sql语句,用于显示一个或多个表或其他视图中的相关数据。视图将一个查询的结果作为一个表来使用,因此视图可以被看作是存储的查询或一个虚拟表。视图来源于表,所有对视图数据的修改最终都会被反映到视图的基表中,这些修改必须服从基表的完整性约束,并同样会触发定义在基表上的触发器。(Oracle支持在视图上显式的定义触发器和定义一些逻辑约束) 2.视图的存储 与表不同,视图不会要求分配存储空间,视图中也不会包含实际的数据。视图只是定义了一个查询,视图中的数据是从基表中获取,这些数据在视图被引用时动态的生成。由于视图基于数据库中的其他对象,因此一个视图只需要占用数据字典中保存其定义的空间,而无需额外的存储空间。 3.视图的作用 用户可以通过视图以不同形式来显示基表中的数据,视图的强大之处在于它能够根据不同用户的需要来对基表中的数据进行整理。视图常见的用途如下: 通过视图可以设定允许用户访问的列和数据行,从而为表提供了额外的安全控制 隐藏数据复杂性 视图中可以使用连接(join),用多个表中相关的列构成一个新的数据集。此视图就对用户隐藏了数据来源于多个表的事实。 简化用户的SQL 语句 用户使用视图就可从多个表中查询信息,而无需了解这些表是如何连接的。 以不同的角度来显示基表中的数据 视图的列名可以被任意改变,而不会影响此视图的基表 使应用程序不会受基表定义改变的影响 在一个视图的定义中查询了一个包含4 个数据列的基表中的3 列。当基表中添加了新的列后,由于视图的定义并没有被影响,因此使用此视图的应用程序也不会被影响。 保存复杂查询 一个查询可能会对表数据进行复杂的计算。用户将这个查询保存为视图之后,每次进行类似计算只需查询此视图即可。

oracle create database 手动创建数据库

oracle create database 手动创建数据库 oracle create database 手动创建数据库(2012-04-17 10:15:08) create the sql file: XXX.sql CREATE DATABASE ratl1252 USER SYS IDENTIFIED BY rati0nal USER SYSTEM IDENTIFIED BY rati0nal LOGFILE GROUP 1 ('/Oracle/product/10.2.0/Db_1/oradata/ratl1252/redo01.log') SIZE 100M, GROUP 2 ('/Oracle/product/10.2.0/Db_1/oradata/ratl1252/redo02.log') SIZE 100M, GROUP 3 ('/Oracle/product/10.2.0/Db_1/oradata/ratl1252/redo03.log') SIZE 100M MAXLOGFILES 16 MAXLOGMEMBERS 5

MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 2 CHARACTER SET WE8MSWIN1252 DATAFILE '/Oracle/product/10.2.0/Db_1/oradata/ratl1252/system01.dbf' SIZE 2048M REUSE EXTENT MANAGEMENT LOCAL SYSAUX DATAFILE '/Oracle/product/10.2.0/Db_1/oradata/ratl1252/sysaux01.dbf' SIZE 1024M REUSE DEFAULT TEMPORARY TABLESPACE Temp TEMPFILE '/Oracle/product/10.2.0/Db_1/oradata/ratl1252/temp01.dbf' SIZE 2048M REUSE; add below settings to init.ora file: undo_management=AUTO undo_tablespace=UNDOTBS export $ORACLE_SID=SID_Name sqlplus /nolog conn /as sysdba startup nomount

oracle创建用户及权限说明文档

Oraclec创建用户 一、命令行创建用户具体步骤如下: 1.以管理员身份登录系统并创建一个新的表空间,操作如下: 操作如下: 2. Next 5M maxsize 100M ;----每次扩大5M,但最大为100M

3. Temporary tablespace test1_temp; ----设置临时表空间为test1_temp 4. 操作如下 5. 操作如下 6.最后提交即可。Commit 二、表空间的增删改查 1. 2. 如下操作,其中标示出来的路径即为查询到的要更改的表空间的具体路径,将该路径加到语句2中的单引号处即可。

3. 4.

四、权限的设置 1.权限的分类: 系统权限:系统规定用户使用数据库的权限。(系统权限是对用户而言)。 实体权限:某种权限用户对其它用户的表或视图的存取权限。(是针对表或视图而言的)。 2.系统权限管理 DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。 RESOURCE: 拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。 CONNECT: 拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。 对于普通用户:授予connect, resource权限。 对于DBA管理用户:授予connect,resource, dba权限。 3.系统权限授权命令及用户管理。 [系统权限只能由DBA用户授出:sys, system(最开始只能是这两个用户)] 授权命令:SQL> grant connect, resource, dba to 用户名1 [,用户名2]...; [普通用户通过授权可以具有与system相同的用户权限,但永远不能达到与sys 用户相同的权限,system用户的权限也可以被回收。] 例: SQL> connect system/manager SQL> Create user user50 identified by user50; SQL> grant connect, resource to user50; 查询用户拥有哪里权限: SQL> select * from dba_role_privs; SQL> select * from dba_sys_privs; SQL> select * from role_sys_privs; 删除用户:SQL> drop user 用户名cascade; //加上cascade则将用户连同其创建的东西全部删除。 4.给新建的用户分配只有连接以及对某些表和视图的查询权限: oracle授权对视图的查询.docx 5.用户管理: 1)、创建用户的Profile文件 SQL> create profile student limit // student为资源文件名 FAILED_LOGIN_ATTEMPTS 3 //指定锁定用户的登录失败次数 PASSWORD_LOCK_TIME 5 //指定用户被锁定天数 PASSWORD_LIFE_TIME 30 //指定口令可用天数 2)、创建用户 SQL> Create User username Identified by password Default Tablespace tablespace Temporary Tablespace tablespace Profile profile Quota integer/unlimited on tablespace; 6.用户密码过期问题: 首先,查看系统中有哪些用户:

oracle子程序和包

实验: 子程序和包 实验目的 (1)掌握函数和子程序的创建和使用。 (2)掌握带参数的子程序的使用。 (3)掌握包的创建和使用。 实验内容 1、编写一个包emp_package,用来对emp表进行操作。其中应包含以上几个功能: (1)编写一个不带参数的过程dept_pro,功能是输出每个部门名称和部门人数,建议使用游标。 SQL> ed 已写入file afiedt.buf 1 create procedure emp_pro 2 is 3 CURSOR dept_cur IS select dname,count(empno)人数from emp,dept 4 where emp.deptno=dept.deptno group by dname; 5 begin 6 for v_dept in dept_cur loop 7 dbms_output.put_line(v_dept.dname||' '||v_dept.人数); 8 end loop; 9* end; SQL> / 过程已创建。 (2)输入职工编号,得到职工姓名的存储过程或函数emp_pro或emp_fun CREATE OR REPLACE PROCEDURE emp_pro ( p_name OUT emp.ename%type, p_sal OUT emp.sal%type, p_eno IN emp.empno%type )

IS begin -- Test statements here select ename,sal into p_name,p_sal from emp where empno=p_eno; end; CREATE OR REPLACE FUNCTION emp_fun(p_eno emp.empno%type) RETURN emp.ename%type IS v_ename emp.ename%type; begin -- Test statements here select ename into v_ename from emp where empno=p_eno; return v_ename; end; (3)编写一个函数dept_fun,向函数传递一个部门号,如果dept表中不包含这个部门号,则返回”无此部门。 SQL> ed 已写入file afiedt.buf 1 CREATE OR REPLACE FUNCTION dept_fun(v_deptno NUMBER:=&deptno) 2 RETURN dept.dname%type 3 IS 4 v_dname dept.dname%type; 5 begin 6 -- Test statements here 7 select dname into v_dname 8 from dept where deptno=v_deptno; 9 return v_dname; 10 EXCEPTION 11 WHEN NO_DA TA_FOUND THEN 12 DBMS_OUTPUT.PUT_LINE('无此部门'); 13* end; SQL> / 输入deptno 的值: 10 原值1: CREATE OR REPLACE FUNCTION dept_fun(v_deptno NUMBER:=&deptno) 新值1: CREATE OR REPLACE FUNCTION dept_fun(v_deptno NUMBER:=10) 函数已创建。

oracle数据字典详解

学习笔记:oracle数据字典详解 --- 本文为TTT学习笔记,首先介绍数据字典及查看方法,然后分类总结各类数据字典的表和视图。然后列出一些附例。 数据字典系统表,保存在system表空间中。 由表和视图组成,由服务器在安装数据库时自动创建,用户不可以直接修改数据库字典,在执行DDL 语句时,oracle会自动修改。 记录一些表和视图(只读的),新建的表不要和这空间建在一起(9i以前的版本新用户建的表默认表空间为system,注意修改) --查询数据字典: select * from dictionary --数据字典导出方法: conn / as sysdba spool on spool c:\dic.txt select * from dictionary spool off 主要四部分: 1,内部RDBMS表:x$…… 2,数据字典表:……$ 3,动态性能视图:gv$……,v$…… 4,数据字典视图:user_……,all_……,dba_……

数据库启动时,动态创建x$,在X$基础上创建GV$,在GV$基础上创建V$X$表-->GV$(视图)--->V$(视图) +++ 一,内部RDBMS表x$……,例如:x$kvit,x$bh,x$ksmsp,x$ksppi和x$ksppcv 核心部分,用于跟踪内部数据库信息,维持DB的正常运行。 是加密命名的,不允许sysdba以外的用户直接访问,显示授权不被允许。最好不要修改. x$kvit=Kernel Layer Performance Layer V Information tables Transitory Instance parameter 数据库启动时,动态创建x$…… +++ 二,数据字典表……$,如tab$,obj$,ts$…… --用来存储表、索引、约束以及其他数据库结构的信息。 --创建数据库时通过脚本sql.bsq来创建,脚本:$oracle_home/rdbms/admin/sql.bsq +++ 三,动态性能视图gv$……,v$……,如V$parameter --记录了DB运行时信息和统计数据,大部分动态性能视图被实时更新以反映DB当前状态。 --数据库创建时建立的。 --只有sysdba可以直接访问。 --查看表v$fixed_view_definition(***),可以查看GV$和V$视图的创建语句。(oracle提供一些特殊视图,用来记录其他视图的创建方式,v$fixed_view_definition就是其中之一) --select view_definition from v$fixed_view_definition where view_name='V$FIXED_TABLE'; --gv$……=Global V$,在X$……基础上创建,是为了满足OPS环境(多个实例)的需要面产生的,可以返回多个实例的信息。

oracle创建数据库图解

Oracle 10g创建数据 一.工具创建数据库 1.打开oraDb10g_home1=>Configuration and MigrationTool=>Database Configuration Assistant 2. 如果是第一次创建数据库,只能创建数据库和管理模板可以使用,选择创建数据库,单“下 一步”,会出现数据库模板对话框

3. 数据库模板是本地硬盘上的XML文件,用来存储数据库的配置信息,择适合于您的数据库将支 持的工作负载的类型的模板。如果您不确定,选择默认的”一般模板” 4.选择“一般用途”,单击“下一步”,会显示数据库标示对话框,该对话框用于设置全局数据库名和

例程名,全局数据库名,格式一般为:db_name.db_domain。db_name用于对应数据库名,db_domain对应于网络域名。SID(例程)应该与db_name完全一致 例如,下面是一个典型的全局数据库名https://www.doczj.com/doc/a21517456.html,数据库名部分(在本例中为test) 是数据库的简单名称。数据库域部分(在本例中为https://www.doczj.com/doc/a21517456.html,) 指定数据库所在的域。可能的话,Oracle 建议将您的数据库域镜像到网络域 5. 单击“下一步”,会出现“管理选项”对话框。用于设置OEM管理信息,如果要集中管理所有的Oracle数据库,那就要选择“Grid Control管理数据库”,如果只管理本地数据库,那就选择“使用Database Control管理数据库”(默认选中)。

6. 选择“使用Database Control管理数据库”,单击“下一步”,会出现“数据库身份证明”对话框,该对话框用于设置初始数据库用户帐号的口令.您可以设置单个口令,应用于所有数据库用户帐户;也可以为每个帐户单独提供唯一的口令,以提高帐户的安全性。 SYS 用户拥有数据字典的所有基表和用户可访问的视图。任何Oracle 用户都不应该更改(更新、删除或插入) SYS 方案中包含的任何行或方案对象,因为此类操作会破坏数据的完整性。安全管理员必须严格控制此类重要帐户SYSTEM 用户用于创建显示管理信息的其它表和视图,以及各种Oracle 选件和工具使用的内部表和视图。安全管理员必须严格控制此类重要帐户。 SYSMAN 用户代表Enterprise Manager 超级管理员帐户。此Enterprise Manager 管理员可以创建和修改其它Enterprise Manager 管理员帐户,并可以管理数据库实例本身。 Enterprise Manager 使用DBSNMP 用户来监视数据库。Enterprise Manager 使用此帐户来访问有关数据库的性能统计信息。 DBSNMP 身份证明有时称为监视身份证明。

Oracle子程序存储过程

Oracle_子程序_存储过程 select user from dual; set serveroutput on --存储过程 CREATE OR REPLACE PROCEDURE proce_Test --创建过程 is --局部变量 BEGIN dbms_output.put_line('大家好' ); END proce_Test; --执行存储过程建议按f5 执行存储过程 execute proce_test; begin proce_test; end; --------------------------------------------------------------------------------------- ----------------------------------------------- -- 此处说明定义存储过程时不能给形参施加限制(大小),存储过程创建出错,也会保留在服务器上------------------------------------------------ ------错误问题说明 Create procedure Sp_Test1(a varchar2,b out varchar2) -- 此处不能加size,执行存储过程会出错.但该存储过程依然保存在数据库中,此名字已经被占用,当修改正确后,再执行时会抱该对象已经存在的异常,所以建议使用or replace is Begin b :=a; End Sp_Test1; drop procedure sp_Test1 --create or replace procedure --test(a varchar2,b out varchar2) is --begin

Oracle数据库实例的创建、删除与修改(doc 6页)

Oracle数据库实例的创建、删除与修改(doc 6页)

Oracle数据库实例的创建、删除、修改 以SUSE10SP2、Oracle10gR2为例。 本文中的数据库实例这一称谓应该换做数据库更为准确,数据库可以理解为是一个物理的静态概念,主要包括一些物理存在的数据库文件,而数据库实例则是一个动态概念,包括一些内存区域以及若干进程,数据库实例是对数据库进行操作的执行者。(20090714修改) 安装完Oracle数据库系统的安装后,需要创建数据库实例才能真正开始使用Oracle数据库服务。 总结起来,Oracle有三种创建数据库实例的方法。 第一种,最常用也最简单,那就是通过DBCA(Database Configuration Assistant),这是Oralce提供的一个图形界面的数据库实例配置工具,通过它可以创建、删除和修改数据库实例,它的使用也比较简单、易懂,交互式的图形界面操作,非常准确有效的提示与配置,是一个比较方便的创建数据库实例的方式。 按照DBCA给出的提示,很容易创建一个新数据库实例。 在创建数据库的时候,DBCA还提供了两个选项,让你可以根据刚刚设置好的参数生成一个数据库实例模板和一份数据库实例创建脚本。这两个东西是非常好,非常有用的东西,数据库模板由Oracle自己管理维护,已经创建好的数据库实例模板可以在DBCA图形程序新建数据库实例时作为模板来使用,另外在DBCA使用responseFile文件或者命令行参数创建数据库时也需要用到(见后面介绍);数据库创建脚本是一组脚本,包括shell脚本和sql脚本,这些脚本共同实现一个功能,那就是按照你之前在DBCA中设置好的那样创建一个数据库实例(后面也会有介绍),你需要做的只是将这些脚本在你的代码中调用起来。当然,你也可以选择只生成数据库模板或者数据库脚本,而不用去创建一个真的数据库(这通常很费时间)。

oracle客户端的安装和用户的创建

1、光驱: /dev/cdrom 2、挂载光驱 1)挂载点:就是一个目录 2) mount /dev/cdrom 挂载点的名称 卸载光驱 umount /dev/cdrom U盘挂载 /dev/mnt mount –t -vfat /dev/mnt /mnt/usb 3、ftp的配置 1)关闭防火墙 service iptables stop; 2) 关闭selinux vi /etc/selinux/config - disabled init 6 3) 启动ftp service vsftpd start 4) 要使用root用户登录ftp vi /etc/vsftpd/ftpusers; vi /etc/vsftpd/user_list; 注释掉root ,因为默认情况下ftp不允许直接向root用户传输文件。 4、软件安装 1)rpm方式 rpm: redhat package management rpm -qa 查询系统中所有以rpm方式安装的软件 -e 卸载软件包 -i 安装软件包 -v 显示提示

-h 显示安装进度 2)源码方式 先编译 ./configure --选项。。 make make install 3) yum方式,必须有yum源(在外网) yum install compat-db 5、定时任务 周期性任务 Crontab -e 编辑任务 Crontab -l 显示当前有哪些任务 Crontab -r 删除所有任务 一次性任务 at 时间 -f 脚本 at now + 10 minutes -f test.sh 6、JDK安装 上传jdk*****.bin 授权可执行 执行后,默认安装到/usr/java/ 配置系统环境变量 vi /etc/profile JAVA_HOME=/usr/java/jdk1.6.0_45 PATH=$JAVA_HOME/bin:$PATH; CLASSPATH=.:$JAVA_HOME/lib; 重启终端,测试 ------------------------------------------------------------------

ORACLE系统包介绍

Oracle 系统包 DBMS_OUTPUT a)启用 i. dbms_output.enable(buffer_size in integer default 20000); ii. set serveroutput on; b)禁用 i. dbms_output.disable; c)PUT和PUT_LINE i. PUT:所有信息显示在同一行 ii. PUT_LINE信息显示后,自动换行 d)NEW_LINE用于在行的尾部追加行结束符,一般用PUT同时使用 e)GET_LINE和GET_LINES i. DBMS_OUTPUT.GET_LINE(li ne 0UTVARCHAR2,status OUT INTEGER)用于取缓冲区的单行 信息 ii. DBMS_OUTPUT.GET_LINES(lines OUT chararr,numlies IN OUT INTEGER) 用于取得缓冲区的多行信息 DBMS_JOB a)SUBMIT用于建立一个新作业 语法 DBMS_JOB.SUBMIT( job OUT BINARY_INTEGER, what IN VARCHAR2, next_date IN DATE DEFATULT SYSDATE, interval IN VARCHAR2 DEFAULT ' NULL' , no_parse IN BOOLEAN DEFAULT FALSE, instance IN BINARY_INTEGER DEFAULT any_instance, force IN DEFAULT FALSE); 例子 VAR jobno NUMBER; BEGIN DBMS_JOB.SUBMI( :jobno, 'pro_hrs101d0_ins_hrs101t0', sysdate, ‘sysdate+1 '); b)REMOVE!于删除作业队列中的特定作业 语法:DBMS_JOB.REMOVE(jov IN BINARY_INTEGER); 例子:DBMS_JOB.REMOVE(10);--删除JOB号为10 的JOB c)CHANGE用于改变与作业相关的所有信息

Oracle ERP常用系统表结构

PO模块常用表结构 表名: PO.PO_REQUISITION_HEADERS_ALL 说明: 采购请求 REQUISITION_HEADER_ID NUMBER PR头标识码 SEGMENT1VARCHAR2(20)PR号 ENABLE_FLAG VARCHAR2(1)使能标志(Y/N) AUTHORIZATION_STATUS VARCHAR2(25)批准标志(APPROVED/) TYPE_LOOKUP_CODE VARCHAR2(25)类型(PURCHASE) REQUIST_ID NUMBER请求标识码 CANCEL_FLAG VARCHAR2(1)取消标志(Y/N) TRANSFERRED_TO_OE_FLAG VARCHAR2(1)可否转入OE标志(Y/N) PREPARER_ID NUMBER准备人ID(可与HR.PER_PEOPLE_F.PERSON_ID关联) 表名: PO.PO_REQUISITION_LINES_ALL 说明: 采购请求明细 REQUISITION_LINE_ID NUMBER PR行ID REQUISITION_HEADER_ID NUMBER PR头ID LINE_NUM NUMBER栏目 LINE_TYPE_ID NUMBER行类别 CATEGORY_ID NUMBER归类标识码 ITEM_DESCRIPTION VARCHAR2(240)项目描述 UNIT_MEAS_LOOKUP_CODE VARCHAR2(25)单位 UNIT_PRICE NUMBER单价(已折为人民币) QUANTITY NUMBER数量 DELIVER_TO_LOCATION_ID NUMBER交货位置码(与HR.HR_LOCATIONS.LOCATION_ID关联)TO_PERSON_ID NUMBER收货人代码 SOURCE_TYPE_CODE VARCHAR2(25)来源类型 ITEM_ID NUMBER项目内码 ITEM_REVISION VARCHAR2(3)项目版本 QUANTITY_DELIVERED NUMBER已交付数量 SUGGESTED_BUYER_ID NUMBER建议采购员代码 ENCUMBERED_FLAG VARCHAR2(1)分摊标志 RFQ_REQUIRED_FLAG VARCHAR2(1) NEED_BY_DATE DATE需求日期(原始) LINE_LOCATION_ID NUMBER定位行标识码(为空时表示未生成PO) MODIFIED_BY_AGENT_FLAG VARCHAR2(1)被采购员更改标志(被拆分Y/NULL)

手工建立oracle数据库的方法

手工建库需要经过以下几个步骤,每一步骤都非常关键: 1.创建必要的相关目录 2.创建初始化参数文件 3.设置环境变量Oracle_sid 4.创建实例 5.创建口令文件 6.启动数据库到nomount(实例)状态 7.执行建库脚本 8.执行catalog脚本创建数据字典 9.执行catproc创建package包 10.执行pupbld 11.由初始化参数文件创建spfile文件 12.执行scott脚本创建scott模式 13.用命令测试数据库创建是否完成 14.配置OEM,使得能够通过浏览器管理和控制数据库 Oracle的安装路径:C盘创建的数据库名称:book book数据库的SYS用户初始密码:bookstore 需要配置EM资料库之后,才可以通过EM访问数据库(才可以出现DBConsole服务)。 1、打开命令行工具,创建必要的相关目录 C:\>mkdir C:\oracle\product\10.2.0\admin\book C:\>mkdir C:\oracle\product\10.2.0\admin\book\adump C:\>mkdir C:\oracle\product\10.2.0\admin\book\bdump C:\>mkdir C:\oracle\product\10.2.0\admin\book\cdump C:\>mkdir C:\oracle\product\10.2.0\admin\book\dpdump C:\>mkdir C:\oracle\product\10.2.0\admin\book\udump C:\>mkdir C:\oracle\product\10.2.0\admin\book\pfile C:\>mkdir C:\oracle\product\10.2.0\oradata\book 上面创建目录的过程也可以在Windows的图形界面中去创建。其中C:\oracle\product\10.2.0\admin\book目录下的几个子目录主要用于存放数据库运行过程中的跟踪信息。最重要的两上子目录是bdump和udump目录,bdump目录存放的是数据库运行过程中的各个后台进程的跟踪信息,当中alert文件是警告文件,其文件名称为alert_book.log,当数据库出现问题时,首先就可以去查看此文件以找出原因,手工创建过程中出现的各种问题往往也可以通过查看这个文件找到原因。Udump目录存放和特定会话相关的跟踪信息。C:\oracle\product\10.2.0\oradata\book目录存放各种数据库文件,包括控制文件、数据文件、重做日志文件。

Oracle 创建用户

Oracle 创建用户 创建一个新的数据库用户是使用CREATE USER 语句完成的,该语句一般是由DBA 用户来执行;如果要以其他用户身份创建用户,则要求用户必须具有CREATE USDER 系统权限。 每个用户在连接到数据库时,都需要进行身份验证。身份验证可以通过操作系统进行,也可以通过数据库进行,或者通过独立的网络服务器进行。数据库验证是指使用数据库来检查用户、密码以及连接用户的身份,该方式也是最常用的用户验证方式,因此本书重点介绍数据库验证方式。采用数据库验证具有如下优点: ● 用户账号及其身份验证全部由数据库控制,不需要借助数据库外的任何控制。 ● 当使用数据库验证时,Oracle 提供了严格的密码管理机制,加强了密码的安全性。 如果使用数据库验证,则创建用户时必须提供连接密码,并且密码必须是单字节字符。例如,下面的语句创建了一个用户ATG ,并为该用户指定了登录密码、默认表空间、临时表空间: SQL> connect system/password 已连接。 SQL> create user developer 2 identified by developer 3 default tablespace user01 4 quota 10m on user01 5 temporary tablespace temp; 用户已创建。 在上面的语句中,创建了一个名为DEVELOPER 的用户。其中,子句IDENTIFIED BY 指定用户密码,该密码是用户的初始密码,在用户登录到数据库后可以对其进行修改。DEFAULT TABLESPACE 子句为用户指定默认表空间,这样在建立数据库对象(表、索引和簇)时,如果不指定TABLESPACE 子句,Oracle 会自动在默认表空间上为这些对象分配空间。TEMPORARY TABLESPACE 子句用于为用户指定临时表空间,当用户所执行的SQL 语句需要进行排序操作时,若临时数据尺寸超过PGA 工作区,则会在该表空间上建立临时段。QUOTA 子句为用户指定表空间配额,即用户对象在表空间上可占用的最大空间。 在创建用户时需要注意,Oracle 不允许使用其他类型的表空间作为临时表空间使用,同样,也不允许使用临时表空间作为默认表空间。否则会出现如下所示的错误: SQL> create user developer02 2 identified by developer 3 default tablespace USER01 4 quota 128m on users 5 temporary tablespace USERS; create user atg02 注 意 使用过Oracle 10g 以及早期版本的用户需要注意,11g 中的用户密码是区分大小的。

02_如何创建Oracle数据库(DBCA)

如何创建Oracle数据库 创建Oracle数据库有两种方法,DBCA和命令行手工创建。 DBCA的全称是Database Configuration Assistant,翻译成中文就是数据库配置助手。通过DBCA不仅可以创建数据库,还可以删除数据库、重新配置一个已经创建好的数据库、管理模板等等。 下面,我们先来学习如何通过DBCA创建一个Oracle数据库。 以oracle用户登录系统,打开一个终端窗口,输入dbca。 然后按下回车键,出现如下画面: 单击Next进入下一步:

在这一步我们可以选择1、创建数据库2、配置数据库选项3、删除一个数据库4、管理模板5、配置ASM(自动存储管理),由于我们是第一次创建数据库,所以2和3选项是灰色的。选择Create a Database(创建一个数据库),单击Next进入下一步: 这一步有四个选项1、Custom Database(自定义数据库)2、Data Warehouse(数据仓库OLAP)3、General Purpose(通用目的)4、Transaction Processing(事物处理OLTP)单击Show Details 可以查看详细的信息。在这里,我们选择General Purpose,然后单击Next进入下一步:

在这一步,我们要设置全局数据库名(demo)和SID(demo),然后单击Next进入下一步: 这一步是选择是否配置Oracle Enterprise Manager(OEM),我们不做任何改变,按默认选项,单击Next进入下一步:

在这一步,我们需要为账户设置密码,有两个选项:1、为所有账户设置相同的密码2、分别为每一个账户设置不同的密码。 设置好密码后,单击Next进入下一步: 1、File System(文件系统) 2、Automatic Storage Management(自动存储管理ASM) 3、Raw Devices(裸设备) 我们选择File System,单击Next进入下一步:

oracle 创建create user 及授权grant 查看登陆的用户

oracle 创建create user 及授权grant 查看登陆的用户: 以下都可以: show user; select sys_context('userenv','session_user') from dual; select user from dual; 查看所有登录的用户必须为DBA 用户: select username from v$session; sys、system等DBA 用户查看其他用户(test)中的对象(表): SQL> select * from test.student; 创建一个普通用户都把该用户用起来的流程: 1、创建用户 SQL>create user test indentified by test; 这样就创建了一个用户名密码都为test的用户 但这个时候test还是不能登陆成功的,我们需要赋予相应的权限 2、赋予create session的权限 SQL>grant create session to test; 这样test用户就能成功登陆进去 但是此时用户还是不能创建表我们需要赋予用户创建表的权限: SQL>grant create table to test; 但是用户此时还不能创建表因为需要有使用表空间的权限(相当于用户有了进房间的钥匙但是没有进大门的钥匙。。。) 所以也应该赋予相应的权限 SQL>grant unlimited tablespace to test; 这个时候用户就拥有了创建表的权限由于表是用户test的相应的他就拥有了对创建的表的增删查改的权限了 3、查看用户拥有什么权限可以通过查询一个系统的视图(数字字典) SQL>select * from user_sys_privs; 这样就可以知道当前用户的权限 4、撤销权限 SQL> revoke create table from test; ----------------------------- 一些常用视图的区分 dba_tables dba_all_tables user_tables user_all_tables all_tables

oracle数据库创建用户,给用户授权,创建表的语句程序代码

1、创建用户,给该用户授权 Drop user clwz_user 删除用户名为“clwz_user”的用户,注意当删除该用户时,用户下的所有表,都会被删除。 CREATE USER CLWZ_USER IDENTIFIED BY CLWZPZXTSDGAB DEFAULT TABLESPACE clwz_dy TEMPORARY TABLESPACE clwz_dy PROFILE DEFAULT; 创建用户,用户名为“CLWZ_USER”,密码为“CLWZPZXTSDGAB”,默认的表空间为“clwz_dy”, GRANT "DBA" TO "CLWZ_USER"; 付给用户CLWZ_USER对oracle操作的dba权限 2、创建表 drop table vio_users; 删除表名为“vio_users”的表 Oracle中常用的数据类型 Char:存放定长字符数据 Varchar2:存放可变厂字符数据 Number(1,d):存放数值型数据,1代表总位数,d代表小数点厚位数 Date:存放日期 create table vio_users( police_no varchar2(10) primary key, name varchar2(20) not null, password varchar2(20), kind char(1), csrq date, xzqh varchar2(10), privilege varchar2(30) ); 创建表“vio_users”,其中字段police_no为唯一索引字段,字段name为不可空,其他字段默认可空 Desc vio_users 查看表为vio_users的表结构 若想创建和表vio_users的表结构一样,也要其数据的话 Create table aa as select * from vio_users; 若想创建和表vio_users的表结构一样,不要其数据的话 Create table aa as select * from vio_users where rownum<1

内置包Oracle

内置程序包 Oracle提供了许多内置程序包,它们用于扩展数据库的功能。在开发应用程序时,可以利 用这些程序包。数据库用户SYS拥有Oracle提供的所有程序包。它们被定义为公有同义词, 并将执行权限授予了PUBLIC用户组,任何用户都可以访问它们。 Oracle提供的程序包的部分列表见表8.1。 续表 下面简单介绍几个常用的内置程序包。 8.2.1 DBMS_OUTPUT DBMS—OUTPUT程序包允许显示PL/SQL块和子程序的输出结果,这样便于测试和调试它们。 PUT和PUT_LINE过程将信息输出到SGA中的缓冲区。通过调用过程GET_LINE或通过 SET SERVEROUTPUT ON,可以显示缓冲区中的信息。 默认缓冲区大小是2000字节。最小值是2000,最大值是1,000,000。DBMS一OUTPUT包 有以下常用过程。 ENABLE

ENABLE过程用来启用对PUT、PUT_ LINE和NEW_LINE等过程的调用,它只有一个输入参数, 即缓冲区大小(BUFFER_SIZE)。缓冲区大小的输入值用于设置默认缓存的信息量。调用 ENABLE将清除任何已废弃会话中缓存的数据。 DISABLE DISABLE没有输入和输出。DISABLE用于禁用对PUT、PUT_LINE和NEW_LINE的所有调用。 调用DISABLE过程还可清除缓冲区中的任何剩余信息。 PUT PUT有一个输入参数,此参数被重载以接受VARCHAR2、NUMBER和DATE值。PUT用于在缓冲 区中存储一条信息。TO_CHAR将使用默认格式设置格式化这些项。 PUT_ LINE PUT_ LINE有一个输入参数,此参数被重载以接受VARCHAR2、NUMBER和DATE值。如果这些 值是要混合使用,则必须显式使用TO_CHAR函数。PUT_LINE过程用于将一条信息存储在缓 冲区中,后接一个行结束标记。 NEW_LINE NEW_LINE没有参数。它用于向缓冲区中添加换行符。换行符充当行结束标记。对 PUT_LINE 或NEW_LINE的每次调用都将产生一行。 例13演示了DBMS_OUTPUT包的用法。 例13: 例13的输出结果如下所示。 8.2.2DBIVIS_LOB

Oracle常用数据字典表(系统表或系统视图)及查询SQL

Oracle常用数据字典表(系统表或系统视图)及查询SQL 2014年12月15日?数据库?共4187字?暂无评论?阅读861 次 文章目录 ?数据字典分类 ?dba_开头 ?user_开头 ?v$开头 ?all_开头 ?session_开头 ?index_开头 ?伪表 ?数据字典常用SQL查询 数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的。比如一个表的创建者信息,创建时间信息,所属表空间信息,用户访问权限信息的视图等。 数据字典系统表,保存在system表空间中。查询所有数据字典可用语句“select * from dictionary;”。 数据字典分类 数据字典主要可分为四部分: 1)内部RDBMS表:x$*,用于跟踪内部数据库信息,维持DB的正常运行。是加密命名的,不允许sysdba以外的用户直接访问,显示授权不被允许。

2)数据字典表:*$,如tab$,obj$,ts$等,用来存储表、索引、约束以及其他数据库结构的信息。 3)动态性能视图:gv$*,v$*,记录了DB运行时信息和统计数据,大部分动态性能视图被实时更新以反映DB当前状态。 4)数据字典视图:user_*、all_*、dba_*,在非Sys用户下,我们访问的都是同义词,而不是V$视图或GV视图。 数据库启动时,动态创建x$,在X$基础上创建GV$,在GV$基础上创建V$X$表-->GV$(视图)--->V$(视图)。 数据字典视图可分为静态数据字典视图和动态数据字典视图。 静态数据字典是指在用户访问数据字典时内容不会发生改变。这类数据字典主要是由表和视图组成,应该注意的是,数据字典中的表是不能直接被访问的,但是可以访问数据字典中的视图。 静态数据字典中的视图分为三类,它们分别由三个前缀够成:user_*(该用户方案对象的信息)、all_*(该用户可以访问的所有对象的信息)、dba_*(全部数据库对象的信息)。 动态数据字典是Oracle包含的一些潜在的由系统管理员如SYS维护的表和视图,由于当数据库运行的时候它们会不断进行更新,所以称它们为动态数据字典。这些视图提供了关于内存和磁盘的运行情况,所以我们只能对其进行只读访问而不能修改它们。Oracle中这些动态性能视图都是以v$开头的视图,比如v$access。 dba_开头 dba_users数据库用户信息

相关主题
文本预览
相关文档 最新文档