Oracle碎碎念~2

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/575043.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

flutter怎么添加ios网络权限_使用Flutter控制蓝牙通讯

背景知识视频教程Dart和Flutter&#xff1a;完整的开发人员指南 - 国外课栈​viadean.comFlutter使用Firestore构建复杂的Android和ios应用 - 国外课栈​viadean.comFlutter的实际项目 - 国外课栈​viadean.com您想使用蓝牙玩物联网设备&#xff0c;但不能在其中放置任何软件吗…

mysql查看服务器版本sql_警告:您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解使用n的正确语法...

我正在将解析器xml编码到mysql错误全名&#xff1a;1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near CHA3871376-ABZ-1, \xd0\x91\xd1\x80\xd0\xbe\xd0\xbd\xd0\xb7\xd0…

【leetcode】Max Points on a Line

Max Points on a Line 题目描述&#xff1a; Given n points on a 2D plane, find the maximum number of points that lie on the same straight line. 解题思路&#xff1a; 1.首先由这么一个O(n^3)的方法&#xff0c;也就是算出每条线的方程&#xff08;n^2&#xff09;&…

python网页结构分析_Python爬虫基础之网页组成解析

当我们用浏览器访问网站时&#xff0c;每个网页的大不相同&#xff0c;你是否想过它为什么会呈现多种不同的样式呢&#xff1f;就让我们一起了解一下网页的基本组成、结构和节点等内容吧&#xff01;网页的组成 网页可以分为三大部分——HTML、CSS和JavaScript。如果把网页比作…

完全开源im框架_【行业资讯】移动端开源 IM 框架 MobileIMSDK v5.0 发布!

一、更新内容简介本次更新为主要版本更新&#xff0c;强势升级&#xff0c;可同时支持TCP、UDP两种协议&#xff0c;精心封装之下&#xff0c;实现一套API、两种协议同时并存。可能是市面上唯一同时支持UDPTCP两种协议的同类IM框架。二、MobileIMSDK简介MobileIMSDK是一套专为移…

linux的NetworkManager服务(转)

在开启NetworkManager服务的情况下&#xff0c;在终端下敲“service network restart”命令&#xff1a; 正在关闭接口 eth0&#xff1a; 设备状态&#xff1a;3 (断开连接) [确定] 正在关闭接口 eth1&#xff1a; 错误&#xff1a;断开设备 eth1&#xff08;/org/freedesktop…

python使用函数目的_Python函数的概念和使用

Python Python开发 Python语言 Python函数的概念和使用函数 为了便于程序的维护和更好的实现模块化&#xff0c;好的程序都会分解为很多函数。 可以这么说&#xff0c;对于任何的编程语言&#xff0c;函数都是一个非常重要的概念。 python 不仅简化了函数的定义过程&#xff0c…

VirtualBox全屏切换

用VirtualBox的时候&#xff0c;如果设置为全屏&#xff0c;想再切换回来&#xff0c;没有什么菜单&#xff0c;只有通过键盘的快捷键来操作&#xff0c;才可以恢复。 我常常忘掉&#xff0c;所以老是得去找&#xff0c;以后需要记住这几个按键的快捷键。 1.全屏与非全屏切换&a…

python董付国教程_董付国老师python教学——学习笔记(一)

python的对象模型&#xff1a;数字(int float complex)&#xff1a;数字大小没有限制字符串(str)&#xff1a;使用单引号、双引号、三引号作为定界符以字母r或R引导的表示原始字符串 eg&#xff1a;rabc(原始字符串表示里面的转义字符不转义了)字节串(bytes)&#xff1a;以字母…

feign直接走熔断_SpringCloud微服务面试必问:Hystrix 服务降级、熔断

本文作者&#xff1a;JLSong 本文链接&#xff1a;https://www.cnblogs.com/songjilong/p/12770999.html1、Hystrix是什么&#xff1f;Hystrix 是一个用于处理分布式系统的延迟和容错的开源库&#xff0c;在分布式系统里&#xff0c;许多依赖不可避免的会调用失败&#xff0c;比…

httpServlet,java web后台服务

1&#xff0c;定时执行的类 package com.utils;import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; public class MyTimer extends Thread {// 间隔时间&#xff1a;小时private int intervalHours;// 误差(操作所需时间可能导致误差)&am…

mysql 会话级别的参数_PostgreSQL的参数设置级别及查询各级别的参数值

PostgreSQL的参数设置级别及查询各级别的参数值系统级别用户/角色级别用户/角色 数据库级别会话级别1.查询某参数在系统级别的设置直接到postgresql.conf中去过滤2.查询某参数在某用户级别的设置testdb# create user testa password testa;CREATE ROLETime: 85.415 mstestdb# …

【开源项目10】安卓图表引擎AChartEngine

安卓图表引擎AChartEngine(一) - 简介 http://blog.csdn.net/lk_blog/article/details/7645509 安卓图表引擎AChartEngine(二) - 示例源码概述和分析 http://blog.csdn.net/lk_blog/article/details/7642751 安卓图表引擎AChartEngine(三) - 示例源码折线图、饼图和柱状图 http…

python里面print是什么意思_python里print是什么意思

python里print是什么意思,多个,是一个,对象,默认值,一个函数 python里print是什么意思 易采站长站&#xff0c;站长之家为您整理了python里print是什么意思的相关内容。 Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。Python由Guido van Rossum于1989年底发明…

mysql 用户管理系统_mysql 用户管理

MySQL账户管理在我们之前登录MySQL的时候我们都是直接使用的root用户&#xff0c;root用户属于数据库系统中的超级管理员&#xff0c;有权限对mysql进行任何想要做的操作。如果在生产环境下操作数据库时也是全部直接使用root账户连接&#xff0c;这就和悬崖边跳舞差不多。所以 …

执行一次怎么会写入两次数据_浅谈 Redis 数据持久化之 AOF 模式

我们知道 Redis 之所以读写快、性能高&#xff0c;得益于它是一种基于内存的数据库&#xff0c;毫无疑问它的操作都几乎都是基于内存。但是内存型数据库也有一个很大的弊端&#xff1a;如果进程崩溃或者服务重启的时候内存数据得不到保存&#xff0c;就会造成数据丢失。为了解决…

poj 2965 The Pilots Brothers' refrigerator

http://poj.org/problem?id2965 poj 1753扩展&#xff0c;dfs枚举&#xff0c;不过加了一个路径。 The Pilots Brothers refrigeratorTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 19278 Accepted: 7384 Special JudgeDescription The game “The Pilots Broth…

mysql5.7简要介绍_MySQL 5.7新特性介绍

1. 介绍身处MySQL这个圈子&#xff0c;能够切身地感受到大家对MySQL 5.7的期待和热情&#xff0c;似乎每个人都迫不及待的想要了解、学习和使用MySQL 5.7。那么&#xff0c;我们不禁要问&#xff0c;MySQL 5.7到底做了哪些改进&#xff0c;引入了哪些新功能&#xff0c;性能又提…

数字化转型方法论_双中台:企业数字化转型的核心战略与方法论

当下&#xff0c;绝大部分企业的组织形态、经营模式基本都是垂直闭环型&#xff0c;即围绕一种业务或者管理&#xff0c;其计划、执行、检查、优化的闭环都是独立于企业生态之中。在过去的“局部竞争”、“渠道为王”、“终端为王”的时代&#xff0c;这种组织与经营形式很好地…

java ee自学路线

本站文章为 Kenan 原创&#xff0c;转载请注明转自 Kenan的博客 http://kenan1992.qzone.qq.com 首先声明对于什么java ee的 自学不需要编程的基础&#xff0c;但是需要你的刻苦和努力&#xff0c;付出100%的努力&#xff0c;相信你终会有收获的那一天&#xff01;&#xff01;…