1. 如何查看表的列名及类型

SQL> select column_name,data_type,data_length from all_tab_columns where owner='SCOTT' and  table_name='EMP';COLUMN_NAME    DATA_TYPE  DATA_LENGTH
--------------- ---------- -----------
EMPNO        NUMBER            22
ENAME        VARCHAR2        10
JOB        VARCHAR2         9
MGR        NUMBER            22
HIREDATE    DATE             7
SAL        NUMBER            22
COMM        NUMBER            22
DEPTNO        NUMBER            228 rows selected.

2. 如何查看表的约束及建立在何列上

SQL> select * from user_cons_columns;OWNER CONSTRAINT TABLE COLUMN_NAME     POSITION
----- ---------- ----- --------------- ----------
SCOTT FK_DEPTNO  EMP   DEPTNO            1
SCOTT PK_DEPT    DEPT  DEPTNO            1
SCOTT PK_EMP     EMP   EMPNO             1

SQL> select owner,constraint_name,constraint_type,table_name from user_constraints;OWNER CONSTRAINT C TABLE
----- ---------- - -----
SCOTT FK_DEPTNO  R EMP
SCOTT PK_EMP     P EMP
SCOTT PK_DEPT    P DEPT

3. 如何查看哪个用户对具体目录的操作权限

SQL> select * from dba_tab_privs where table_name='TMP';GRANT OWN TAB GRA PRIVILEGE                   GRA HIE
----- --- --- --- ------------------------    --- ---
SCOTT SYS TMP SYS WRITE                       NO  NO
SCOTT SYS TMP SYS READ                        NO  NO

4. 如何查看用户拥有的对象权限和系统权限

SQL> select * from user_tab_privs;GRANT OWN TAB GRA PRIVILEGE                   GRA HIE
----- --- --- --- -------------------------   --- ---
SCOTT SYS TMP SYS WRITE                       NO  NO
SCOTT SYS TMP SYS READ                        NO  NOSQL> select * from user_sys_privs;USERNAME                       PRIVILEGE                 ADM
------------------------------ ------------------------  ---
SCOTT                          UNLIMITED TABLESPACE      NO

5. 如何判断数据库启动用的是pfile还是spfile

SQL> show parameter spfile

若有值,则是用spfile启动,若为空,则是用pfile启动

6. When SQL*Plus starts, and after CONNECT commands, the site profile (e.g. $ORACLE_HOME/sqlplus/admin/glogin.sql) and the user profile (e.g. login.sql in the working directory) are run. The files may contain SQL*Plus commands.

这两个文件可以自定义SQL*Plus命令

7. sqlplus -L 

-L代表Attempts to log on just once, instead of reprompting on error.即只判断一次用户名和密码是否匹配,倘若不匹配,则立即退出,如果不加L,则有三次尝试机会

[oracle@node3 ~]$ sqlplus -L scott/123
SQL*Plus: Release 11.2.0.1.0 Production on Thu Dec 18 04:07:25 2014
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
ERROR:
ORA-01017: invalid username/password; logon denied
SP2-0751: Unable to connect to Oracle.  Exiting SQL*Plus

8. 密码文件

密码文件的默认位置为:$ORACLE_HOME/dbs

密码文件的查找顺序:orapw<sid> -->  orapw  --> Failure

所以在创建密码文件时filename只能为orapw<sid>或者orapw

9. 查看谁被授予了SYSDBA或者SYSOPER权限

SQL> select * from v$pwfile_users;

10. 查看数据字典中有关权限的表

SQL> select * from dict where table_name like '%PRIVS%';

11. 批量插入

insert all
          into test1
          into test2
      select * from dba_objects;

12. beq

在sqlplus中输入conn / as sysdba,这时候由sqlplus启动一个服务器进程,通过ps命令查看到这这个服务器进程的protocol=beq 而不是TCP,beq是bequeath protocol的简称,是一个sql*net protocol有点类似于IPC,仅仅是作为本地连接才能使,即客户机和服务器程序在同一个服务器上。beq可以在不需要listener的情况一下,建立一个专用连接。 
如下所示:
oracle    1777  1776  0 18:04 ?        00:00:00 oracleorcl (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
如果是走网络连接,则显示如下:
oracle    1791     1  2 18:05 ?        00:00:00 oracleorcl (LOCAL=NO)
13. Oracle 11g下的ipcs -m
在11g下,通过ipcs -m观察的结果如下:

[root@node2 oracle]# ipcs -m------ Shared Memory Segments --------
key        shmid     owner     perms       bytes      nattch     status
0x00000000 32768     oracle     640        4096       0
0x00000000 65537     oracle     640        4096       0
0x00000000 98306     oracle     640        4096       0
0x00000000 131075    oracle     640        4096       0
0xefc07fc8 163844    oracle     640        4096       0      

bytes列均为4096,而在10g下,owner列只有一个oracle用户,且bytes是一个具体的数值。为什么11g下的bytes为4096且nattch为0,具体原因可参考:http://www.oracledatabase12g.com/archives/11g%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86%E6%96%B0%E7%89%B9%E6%80%A7%E7%9A%84internal%E8%A1%A8%E7%8E%B0.html

14. 如何查看当前会话的SID

SQL> select sid from v$mystat where rownum=1;

15. 如何查看连接到当前数据库的会话

SQL> select sid,username,status from v$session;

16. 如何kill掉会话

SQL> select sid,serial# from v$session where username='SCOTT';SID    SERIAL#
---------- ----------19      109SQL> alter system kill session '19,109';System altered.SQL> select sid,serial#,status from v$session where username='SCOTT';SID    SERIAL# STATUS
---------- ---------- --------19      109   KILLED

关于kill会话,可参考 http://www.cnblogs.com/kerrycode/p/4034231.html

17. 如何查看oracle用户密码

SQL> select name,password from sys.user$;

18. 不知道某个用户的密码,又想用这个用户做一些操作,又不能去修改掉这个用户的密码

以test用户为例,原来test用户的密码为test

SQL> conn test/test
Connected.
SQL> conn /as sysdba
Connected.
SQL> select name,password from sys.user$ where name='TEST';NAME                           PASSWORD
------------------------------ ------------------------------
TEST                           7A0F2B316C212D671 row selected.SQL> alter user test identified by hello;User altered.SQL> conn test/hello
Connected.
SQL> select * from tab;TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
CHAINED_ROWS                   TABLE
EMPLOYEES                      TABLE
EMPLOYEES_TMP                  TABLE3 rows selected.SQL> conn /as sysdba
Connected.
SQL> alter user test identified by values '7A0F2B316C212D67';User altered.SQL> conn test/test
Connected.

19. 如何查看数据库属性

SQL> select property_name,property_value from database_properties;

20. 如何查看特定分区的值

SQL> select count(*) from test partition(p1);

21. 查看tablespace的数据文件

SQL> select tablespace_name,file_name from dba_data_files;

22. 查看用户被赋予的角色

SQL> select * from dba_role_privs where grantee='SCOTT';

23. 在PL/SQL Developer中如何查看表结构

CTRL+表名

24. 如何原样输出字符串

SQL> select  q'([@#$%^&*~?/" '])' from dual;Q'([@#$%^&*~?/"
---------------
[@#$%^&*~?/" ']SQL> select  q'2I'm Victor2' from dual;Q'2I'MVICT
----------
I'm Victor

注意:  1> Q'后跟起始分隔符,起始分隔符后的字符串原样输出,起始分隔符必须有配对的结束分隔符。

2> 分隔符可以为数字、字母、特殊字符。但'&'不能作为分隔符,因为'&'意思是传入参数。

3> '['、'('、'{'作为分隔符,必须以']'、')'、'}'结束。

25. TWO_TASK  

TWO_TASK lets you silently support a tns network connect string, that is, instead of: sqlplus scott/tiger@tnsname
you can: export TWO_TASK=tnsname
sqlplus scott/tiger <<<== that has an implied @tnsname
oracle_sid is used for a local connection - direct to the server - without using a listener the environment variable name is LOCAL on windows NT. set LOCAL=service_name

TWO_TASK是环境变量,通过将其设置为网络字符串,用户通过网络登录时,可不用指定网络字符串,譬如,sqlplus scott/tiger@orcl,通过将TWO_TASK设置为orcl,用sqlplus scott/tiger可直接登录。

注意:Linux和Windows下的设置方式不同,Linux下为export TWO_TASK=orcl,Windows下为set LOCAL=orcl

26. wmsys.wm_concat

该函数可以把列值以","号分隔起来,并显示成一行

SQL>  select wmsys.wm_concat(dname) from dept;WMSYS.WM_CONCAT(DNAME)
--------------------------------------------------------------------------------
ACCOUNTING,RESEARCH,SALES,OPERATIONS,IT

--将逗号替换为'|'号
SQL>  select replace(wmsys.wm_concat(dname),',','|') from dept;REPLACE(WMSYS.WM_CONCAT(DNAME),',','|')
--------------------------------------------------------------------------------
ACCOUNTING|RESEARCH|SALES|OPERATIONS|IT

27. 如何将一行的值转换为列

原始输出如下:

SQL> select * from dept where deptno=10;DEPTNO DNAME          LOC
---------- -------------- -------------10 ACCOUNTING     NEW YORK

那么如何将这一行的值转换为列呢?

SQL> with t as 2    ( select deptno,dname,loc from dept where deptno=10)3  select to_char(deptno) from t4  union all5  select dname from t6  union all7  select loc from t;TO_CHAR(DEPTNO)
----------------------------------------
10
ACCOUNTING
NEW YORK

28. dual

SQL> create table dual as (select * from dual union all select * from dual);Table created.SQL> select * from dual;D
-
X
XSQL> select sysdate from dual;SYSDATE
---------
10-JUN-15
10-JUN-15

29. 生成AWR报告的三个条件,以test用户为例

grant create session to test;
      grant select any dictionary to test;
      grant execute on dbms_workload_repository to test;

30. 单引号对应的是chr(39)

39其实是单引号的ASCII码

31. 如何查找堵塞会话并杀掉它

SQL> select sid,serial#,blocking_session from v$session where username='SCOTT'; SID    SERIAL# BLOCKING_SESSION
---------- ---------- ----------------125          7              142SQL> select sid,serial#,username from V$session where sid=142;SID    SERIAL# USERNAME
---------- ---------- ------------------------------142         27 SYSSQL> alter system kill session '142,27';System altered.

32. 如何设置sqlprompt

首先利用define命令显示预定义的SQL*Plus变量列表

SQL>define
DEFINE _DATE           = "16-JUL-15" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "test" (CHAR)
DEFINE _USER           = "SCOTT" (CHAR)
DEFINE _PRIVILEGE      = "" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1102000400" (CHAR)
DEFINE _EDITOR           = "vim" (CHAR)
DEFINE _O_VERSION      = "Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options" (CHAR)
DEFINE _O_RELEASE      = "1102000400" (CHAR)

设置sqlprompt

SQL>set sqlprompt &_USER@&_CONNECT_IDENTIFIER>
SCOTT@test>

33. 如何查看后台进程的作用

SQL> select name,description from v$bgprocess;

34. 如何查看Oracle的版本号

SQL> select * from v$version;

35. Database Sample Schemas

http://docs.oracle.com/cd/E11882_01/server.112/e10831/toc.htm

36. 如何找出给定数之间的最大值和最小值   

SQL> select least(1,2,3) from dual;LEAST(1,2,3)
------------1SQL> SELECT greatest (1,2,3) from dual ;GREATEST(1,2,3)
---------------3

37. 用shell脚本获取用户连接数

刚开始是这样:

#!/usr/bin/sh
export ORACLE_HOME=/opt/app/oracle/product/11.2.0/
export TNS_ADMIN=/home/monitor
sqlplus='/opt/app/oracle/product/11.2.0/bin/sqlplus'
output=`$sqlplus -s test/test@orcl << EOF
set feedback off;
set heading off;
select count(*) from v$session where status='ACTIVE';
EOF`
echo $output

但是执行的时候会报如下错误:

select count(*) from v where status='ACTIVE'
ERROR at line 1: ORA-04044: procedure, function, package, or type is not allowed here

原因在于$session当做变量了,当然为空了。

根据网上的方案,$前面加个转义符,即v$session修改为v\$session,但还是没有效果。

解决方法,在前面定义了一个session变量

#!/usr/bin/sh
export ORACLE_HOME=/opt/app/oracle/product/11.2.0/
export TNS_ADMIN=/home/monitor
session='$session'
sqlplus='/opt/app/oracle/product/11.2.0/bin/sqlplus'
output=`$sqlplus -s audit_vces/audit_vces@orcl << EOF
set feedback off;
set heading off;
select count(*) from v$session where status='ACTIVE';
EOF`
echo $output

 

转载于:https://www.cnblogs.com/ivictor/p/4118304.html

Oracle碎碎念~2相关推荐

  1. 前端碎碎念 之 nextTick, setTimeout 以及 setImmediate 三者的执行顺序

    『前端碎碎念』系列会记录我平时看书或者看文章遇到的问题,一般都是比较基础但是容易遗忘的知识点,你也可能会在面试中碰到. 我会查阅一些资料并可能加上自己的理解,来记录这些问题.更多文章请前往我的个人博客 ...

  2. 参加海峡两岸城市地理信息系统论坛2010 年会(一张图、规划信息化和空间句法的碎碎念)...

    上周末去清华建筑学院开了个会,叫做海峡两岸城市地理信息系统论坛2010 年会,主题很大,但是内容比较集中一些,就是围绕着GIS与城市规划.一天下来听了20个报告,挺佩服主办方的时间控制,这么密集的报告 ...

  3. Jerry的碎碎念:SAPUI5, Angular, React和Vue

    2019独角兽企业重金招聘Python工程师标准>>> 去年我去一个国内客户现场时,曾经和他们IT部门的一位架构师聊到关于在SAP平台上进行UI应用的二次开发时,UI框架是选用UI5 ...

  4. PMcaff写给大家的年终碎碎念 PMcaff | 记录

    今天是大年三十,2014马上就要结束了,送上新春祝福之前,碎碎念的小希有话想跟大家说. 瞧这一年 小米在硬件行业继续如鱼得水,科幻片里的智能家居生慢慢变成生活. 阿里巴巴在纳克达斯扬眉吐气了一把,一夜 ...

  5. 数据结构碎碎念(一)

    碎碎念 在大一学习C语言的时候,举过一个用栈实现的括号匹配算法,当时觉得很难,不过现在回顾起来,这个算法也算是比较简单的一个关于栈的应用了.而现在所常见的算法问题也都是什么中缀表达式转后缀表达式,双栈 ...

  6. 机器学习碎碎念:霍夫丁不等式

    点击上方"AI有道",选择"设为星标" 关键时刻,第一时间送达! 红色石头每天碎碎念一些机器学习知识和概念,大家一起学习,每天进步一点点!喜欢的话别忘了文末点赞 ...

  7. 花 1 个月收入购买一份保险之后,我的一点碎碎念!

    大家好,我是小詹,一个长得有些清秀的美男子.今天想跟大家聊一聊保险这件事.(纯属碎碎念,不要担心是广告或者推销哈哈哈) 去年年底开始有给自己购买一份保险的想法,最近经过几番了解对比,终于狠心花了一个月 ...

  8. 关于毕业租房的一些碎碎念。

    一年一度毕业季,毕业租房是难以避免的问题(住自己家或者公司宿舍的除外).小詹大三开始在校外租房(北京),现在 4 年多也换了几次住处,踩过不少坑.来分享一下自己的"过来人"心得,希 ...

  9. 碎碎念 | 投资理财那些事

    大家好,我是小詹,一个长得有些清秀的美男子.今天来跟大家唠唠投资理财那些事. 最初觉得一个三无穷学生(没车没房没存款)哪有什么资格来聊这个话题啊,但跟身边朋友以及老同学聊天的时候才知道,其实很多人是没 ...

  10. 关于求职简历的碎碎念。

    分享求职简历的几个注意点. 1. 简历模板 经常在网上看到:跪求一个漂亮的简历模板.其实吧,个人感觉简历模板清晰简约就好,没必要追求华丽.包含必要信息,能第一眼看到关键信息才关键. 2. 模块信息 简 ...

最新文章

  1. 外部类的静态成员不允许直接使用非静态内部类
  2. HDU 5097 Page Rank (模拟)
  3. java session 数量_java中使用session监听实现同帐号登录限制、登录人数限制
  4. 输入身份证号,输出出生日期
  5. python + selenium 练习篇 - 定位元素的方法
  6. 深度学习自学(十七):caffe-sphereface-编译matcaffe遇到的问题
  7. C语言:从键盘输入10个学生的成绩存储在数组中,求成绩最高者的序号和成绩
  8. SQL Server一些重要视图 1
  9. 第9节-做网站有哪些收入接入点
  10. e531网卡驱动linux,联想e531网卡驱动下载-联想e531笔记本无线网卡驱动v6.30.223.201 官方版 - 极光下载站...
  11. 整理出的安卓国家码,简称,语言的Json文件,可以一一对应国旗
  12. mysql3819错误,微软 Office 3819.20006 预览版发布:修复 Excel 导出 PDF 错误等问题
  13. PS怎么把人物扣的更干净_PS抠图技巧
  14. python 卡方分布函数_推断统计分析(二):python验证三大抽样分布
  15. office2010专业版
  16. 基于java的KTV点歌选歌系统
  17. 发送邮件提示Sender address rejected: not owned by user错误
  18. 计算机表格怎么取消分页,Excel表格自动分页、取消分页等技巧 专家详解
  19. 视频中的自监督学习:Removing the background忽略视频的背景,学习robust的特征
  20. 对js原型和原型链的理解

热门文章

  1. 的translate插件_知否 ?知否 ?React插件了解一下!
  2. 计算机与编程导论,计算机科学与编程导论
  3. java 1000到9999_java – 可以0.99999999999乘以四舍五入到1.0?
  4. tcping在linux用法,tcping的安装和使用
  5. sap运维要做哪些工作_患上腰椎间盘突出,适合做哪些工作?不适合做哪些工作?...
  6. 的run代码_小心使用 Task.Run 续篇
  7. django报表系统_django使用echarts
  8. maven没有resource文件夹_maven项目中没有resource文件夹的问题
  9. python程序的name属性作用是什么_python __name__ == ‘__main__’详细解释+例子
  10. 【youcans 的 OpenCV 例程200篇】114. 形态学操作之膨胀