记录第一次用oracle数据库时的问题和操作

-- 显示所有用户(库)
-- select * from all_users;

-- 显示当前所有的表
-- select * from tab;

-- 查看当前数据库名
-- select name from v$database;

-- 查看当前数据库实例名
-- select instance_name from v$instance;

-- 查询数据库域名
-- select value from v$parameter where name = 'db_domain';

-- 查询数据库服务名
-- select value from v$parameter where name = 'service_name';

-- 新建用户 -- create user 用户名 identified by 密码 
-- create user test_qi identified by test_qi

-- 查看oracle数据库的数据文件的目录
-- select * FROM DBA_DATA_FILES;

问题一

创建表时出现ORA-01950: no privileges on tablespace ‘USERS’ [closed]

这个问题的主要原因是没有给用户设置大小空间,执行下列操作中的其中一个

ALTER USER <user> quota unlimited on <tablespace name>;

or

ALTER USER <user> quota 100M on <tablespace name>;

我的执行

ALTER USER TEST_QI quota unlimited on USERS; // TEST_QI是我的用户名(库)

问题二

当我查询表的内容时,出现SQL Error: ORA-00942 table or view does not exist

出现这个问题时,我一直以为我是不是权限没有给到位导致的,知道看到这篇博客给了我一些灵感。

解决方法:需要知道这个表是哪个用户创建的,然后在该用户下,查询该表

比如,我用的是Navicat Premium连接oracle的,在oracle中,TEST_QI是我自己创建的用户

image

image

一定要在当前用户下查询,才能查出东西

或者用oracle完整的语法查询

-- select * from 用户名."表名";
-- select * from TEST_QI."test"; 

最后还有一点,表要用引号引起来

推荐几篇文章

oracle的几个概念db_name db_domain instance SID

oracle入门教程

oracle对于schema的理解

oracle赋予权限的一些操作