Oracle 手工建库第三步 创建数据字典

在手工建库完成之后,即通过create database建立了数据库启动到open状态,数据库是不存在数据字典的,需要创建数据库的数据字典。这个时候就要通过数据库脚本来创建数据字典表。

 

数据字典表都是一些只读的表,可以通过数据字典表去查询创建相关对象的信息,比如创建一张表,这张表里面有什么字段,表叫什么名字,这些等信息要通过数据字典表来查询到。

 

数据字典表对于用户来说是只读的,是由oracle来自动维护的,对于DDL操作数据库会自动完成数据字典表的维护。

 

 

创建数据字典表主要是跑三个脚本,前面两个脚本是用sys用户来跑的,最后一个脚本是system用户来跑。

@是代表运行脚本,?代表是oracle_home($ORACLE_HOME)

[oracle@Database2 db_1]$ find /u01 -name catalog.sql

/u01/app/oracle/product/11.2.0/db_1/rdbms/admin/catalog.sql

@?/rdbms/admin/catalog.sql

@?/rdbms/admin/catproc.sql

@?/sqlplus/admin/pupbld.sql (SYSTEM用户执行)

 

 

 

上面这些脚本跑完了,默认是没有Scott这个用户的,还需要跑@?/rdbms/admin/utlsampl

 

SQL> @?/rdbms/admin/utlsampl

Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

[oracle@Database2 ~]$ sqlplus scott/tiger

SQL> desc user_tables;  --这个数据字典是当前用户拥有的对象的信息

 Name    Null?    Type

 ----------------------------------------- -------- ----------------------------

 TABLE_NAME    NOT NULL VARCHAR2(30)

 TABLESPACE_NAME     VARCHAR2(30)

 CLUSTER_NAME     VARCHAR2(30)

 IOT_NAME     VARCHAR2(30)

 STATUS     VARCHAR2(8)

 

SQL> select TABLE_NAME,TABLESPACE_NAME from user_tables;

 

TABLE_NAME        TABLESPACE_NAME

------------------------------ ------------------------------

DEPT        SYSTEM

EMP        SYSTEM

BONUS        SYSTEM

SALGRADE        SYSTEM

 

 

 

SQL> select owner,table_name,tablespace_name from dba_tables where owner='SCOTT';

select owner,table_name,tablespace_name from dba_tables where owner='SCOTT'

                                             *

ERROR at line 1:

ORA-00942: table or view does not exist

可以看到出现错误了,dba_tables是只能sys用户访问,Scott用户是访问不了这个数据字典表的。(普通用户是不可以访问dba打头的数据字典表)

SQL> conn / as sysdba  

Connected.

SQL> set linesize 1200;

SQL> select owner,table_name,tablespace_name from dba_tables where owner='SCOTT';

 

OWNER        TABLE_NAME       TABLESPACE_NAME

------------------------------ ------------------------------ ------------------------------

SCOTT        DEPT       SYSTEM

SCOTT        EMP       SYSTEM

SCOTT        BONUS       SYSTEM

SCOTT        SALGRADE       SYSTEM

 

三种数据字典,按照查询信息的范围可以分为下面三种   USER <ALL <DBA

也就是说以user开头的是查看当前用户拥有的对象信息,all开头的就是这个用户有权限访问的对象信息,包括自己可以访问还有别人授权访问的,dba就是整个数据字典表所有的对象的信息。

 

整个建库过程参考前面两篇文章:Oracle 手工建库第一步 创建instance -->Oracle 手工建库第二步 创建databse

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle中,建立数据库和建立表是两个不同的过程。 要建立一个数据库,可以使用Oracle的Database Configuration Assistant工具。打开程序,选择Oracle,然后选择database Configuration Assistant,按照工具的指导创建数据库即可。 然而,在PL/SQL中不能直接使用"create database"语句来创建数据库。PL/SQL是用来连接数据库并执行数据库操作的语言,而创建数据库是一个管理数据库的任务,需要使用专门的工具来完成。 要在Oracle创建表,可以使用"CREATE TABLE"语句。例如,要创建一个名为student的表,可以使用以下语句: CREATE TABLE student( ID varchar2(32) primary key not null, name VARCHAR2(500) not null, age number(2) not null ); 这个语句将创建一个名为student的表,其中包含ID、name和age三个列,并为ID列设置主键约束。 请注意,建立数据库和建立表是不同的操作,分别使用不同的语句和工具来完成。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Oracle建库建表](https://blog.csdn.net/bingyixue1987/article/details/90736227)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值