ORACLE数据库相关操作
表操作
-- 截断表
TRUNCATE TABLE TABLE_NAME;
-- 删除表
DROP TABLE TABLE_NAME;
-- 查询表
SELECT * FROM TABLE_NAME;
-- 添加一条记录
INSERT INTO TABLE_NAME(COLUMN) VALUES(VALUE);
-- 删除记录
DELETE FROM TABLE_NAME WHERE COLUMN=VALUE;
-- 修改记录
UPDATE TABLE_NAME SET COLUMN1='VALUE1' WHERE COLUMN2=VALUE2;
-- 锁表查询
SELECT SESS.SID,SESS.SERIAL#,LO.ORACLE_USERNAME,LO.OS_USER_NAME,AO.OBJECT_NAME,LO.LOCKED_MODE FROM V$LOCKED_OBJECT LO,DBA_OBJECTS AO,V$SESSION "SESS" WHERE AO.OBJECT_ID=LO.OBJECT_ID AND LO.SESSION_ID=SESS.SID;
-- 解除锁表
ALTER SYSTEM KILL SESSION 'XXX,XXX';
时间
-- 查询系统时间
SELECT SYSDATE FROM DUAL;
SELECT CURRENT_DATE FROM DUAL;
SELECT SYSTIMESTAMP FROM DUAL;
-- 字符串转时间
SELECT TO_DATE('1970-01-01 01:00:00','SYYYY-MM-DD HH24:MI:SS') FROM DUAL;
-- 拼接当天第一秒和当天最后一秒
SELECT TO_DATE(TO_CHAR(SYSDATE,'yyyy-mm-dd') || ' 00:00:01','yyyy-mm-dd hh24:mi:ss') FROM DUAL; -- 当天第一秒
SELECT TO_DATE(TO_CHAR(SYSDATE,'yyyy-mm-dd') || ' 23:59:59','yyyy-mm-dd hh24:mi:ss') FROM DUAL; -- 当天最后一秒
-- 查询系统数据库时区
SELECT DBTIMEZONE FROM DUAL;
-- 修改系统数据库时区为 +8:00
ALTER DATABASE SET TIME_ZONE='+8:00';
-- 查看session所属时区
SELECT SESSIONTIMEZONE FROM DUAL;
-- 修改session所属时区
ALTER SESSION SET TIME_ZONE='+8:00'; --原本为-UTC
系统
-- 查询数据库版本
SELECT * FROM V$VERSION;
-- 系统游标修改
ALTER SYSTEM SET OPEN_CURSORS =2000 SCOPE=BOTH; --改为2000
-- 查询当前SID
SELECT NAME FROM V$DATABASE;
-- 查看连接数
SELECT COUNT(*) FROM V$PROCESS;
-- 查看最大连接数
SELECT VALUE FROM V$PARAMETER WHERE NAME = 'processes';
-- 修改最大连接数 sqlplus 需要重启
ALTER SYSTEM SET PROCESSES = 650 SCOPE = SPFILE;
用户
-- 查询用户信息
SELECT * FROM DBA_USERS;
SELECT * FROM DBA_USERS WHERE ACCOUNT_STATUS='OPEN';
SELECT USERNAME FROM DBA_USERS WHERE ACCOUNT_STATUS='OPEN';
-- 查看当前登录用户
-- SHOW USER;
-- 创建用户
CREATE USER USERNAME IDENTIFIED BY USERPASSWORD;
-- 用户授权
GRANT CONNECT,RESOURCE,DBA TO USERNAME; --连接权限,资源访问权限,DBA权限
-- 存储过程授权
GRANT CREATE ANY PROCEDURE TO USERNAME; --创建权限
GRANT EXECUTE ANY PROCEDURE TO USERNAME; --执行权限
GRANT DEBUG ANY PROCEDURE,DEBUG CONNECT SESSION TO USERNAME; --DEBUG权限
GRANT SELECT ON SYS.V_$SESSION TO USERNAME; --对单一用户打开
GRANT SELECT ON SYS.V_$SESSTAT TO USERNAME; --对单一用户打开
GRANT SELECT ON SYS.V_$STATNAME TO USERNAME; --对单一用户打开
GRANT SELECT ANY DICTIONARY TO PRACTICE; --不采用
GRANT SELECT ON V$SESSION TO PUBLIC; --对所有用户打开,所有用户生效
GRANT SELECT ON V$SESSTAT TO PUBLIC; --对所有用户打开,所有用户生效
GRANT SELECT ON V$STATNAME TO PUBLIC; --对所有用户打开,所有用户生效
SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE='USERNAME'; --查询角色权限
SELECT * FROM ROLE_SYS_PRIVS; ----系统权限
SELECT * FROM ROLE_TAB_PRIVS; --对象权限
SELECT * FROM ROLE_ROLE_PRIVS; --角色权限
-- 撤销用户授权
REVOKE CONNECT,RESOURCE,DBA FROM USERNAME;
-- 用户空间分配
ALTER USER USERNAME QUOTA UNLIMITED ON USERS; --不做用户空间资源限制
ALTER USER USERNAME QUOTA 300M ON USERS; --限制用户最大空间资源为300M
-- 查询用户密码过期策略
SELECT * FROM DBA_PROFILES WHERE PROFILE='DEFAULT' AND RESOURCE_NAME='PASSWORD_LIFE_TIME';
-- 修改用户密码过期策略
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; --设置密码永不过期
-- 查询用户密码失败策略
SELECT * FROM DBA_PROFILES WHERE PROFILE='DEFAULT' AND RESOURCE_NAME='FAILED_LOGIN_ATTEMPTS';
-- 修改用户密码失败策略
ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED; --不限制认证失败次数
ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS 30; --30累计认证失败锁定账户
-- 查询 CONNECT_TIME 所在资源文件名
SELECT RESOURCE_NAME,PROFILE FROM DBA_PROFILES;
-- 修改资源限制
ALTER PROFILE DEFAULT LIMIT CONNECT_TIME UNLIMITED; --不限制连接超时
ALTER PROFILE DEFAULT LIMIT CONNECT_TIME 60; --限制连接60分钟超时
ALTER PROFILE DEFAULT LIMIT IDLE_TIME UNLIMITED; --不限制会话超时
ALTER PROFILE DEFAULT LIMIT IDLE_TIME 20; --限制会话最长连续空闲时间为20分钟
-- 查询资源限制值
SELECT RESOURCE_NAME,LIMIT FROM DBA_PROFILES WHERE PROFILE='DEFAULT';
-- 查询用户使用PROFILE文件
SELECT USERNAME,PROFILE FROM DBA_USERS;
-- 查询用户资源使用监控是否开启
SELECT NAME,VALUE FROM GV$PARAMETER WHERE NAME='resource_limit';
-- 开启用户资源使用监控
ALTER SYSTEM SET resource_limit=TRUE;
存储过程
-- 创建存储过程
CREATE OR REPLACE PROCEDURE PROCNAME
AS
BEGIN
DBMS_OUTPUT.PUT_LINE('STORED PROCEDURE PROCNAME'); --控制台输出
END;
-- 查看存储过程
SELECT TEXT FROM USER_SOURCE WHERE NAME = 'PROCNAME' ORDER BY LINE;
-- 调用存储过程
CALL PROCNAME();
或
BEGIN
PROCNAME;
END;
-- 删除存储过程
DROP PROCEDURE PROCNAME;
视图
-- 创建视图
CREATE VIEW VIEW_NAME AS
SELECT SYSDATE FROM DUAL
WITH READ ONLY;
-- 查看视图
SELECT * FROM VIEW_NAME;
-- 视图授权
GRANT SELECT ON VIEW_NAME TO USERNAME;
-- 撤销视图授权
REVOKE SELECT ON VIEW_NAME FROM USERNAME;
-- 删除视图
DROP VIEW USERNAME;
外部ORACLE连接
-- 创建一个外部ORACLE连接
create database link dblink_name
connect to USERNAME identified BY "USERPASSWORD"
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = "IPADDR")(PORT = "PORT"))
)
(CONNECT_DATA =
(SERVICE_NAME = "ORCL")
)
)';
-- 查询数据库相关连接
SELECT OWNER,OBJECT_NAME FROM DBA_OBJECTS WHERE OBJECT_TYPE='DATABASE LINK';
SELECT * FROM DBA_DB_LINKS;
-- 删除数据库连接
DROP DATABASE LINK dblink_name;
-- 从外部ORACLE连接查询数据
SELECT * FROM USERNAME.TABLENAME@dblink_name;
SELECT * FROM TABLENAME@dblink_name;
ORACLE数据库相关操作的更多相关文章
- python访问Oracle数据库相关操作
环境: Python版本:3.6.6 win系统:64位 Linux系统:64位 首先安装配置时,版本必须一致!包括:系统版本,python版本,oracle客户端的版本,cx_Oracle的版本! ...
- mysq数据库相关操作
(一)常用SQL语句 1.SELECT USER() 得到登陆的用户 2.SELECT VERSION() 得到mysql的版本信息 3.SELECT NOW() 得到当前的时间 4.SELECT D ...
- ORACLE数据库误操作执行了DELETE,该如何恢复数据?
ORACLE数据库误操作执行了DELETE,该如何恢复数据? 原创 2016年08月11日 17:23:04 10517 作为一个程序员,数据库操作是必须的,但是如果操作失误,一般都会造成比较严重的后 ...
- eclipse利用sql语句对Oracle数据库进行操作
对Oracle数据库执行操作的sql语句中表名和列名都需用英文双引号("")括起来. 注(\为转义符) 1.插入数据 sql = "insert into \" ...
- oracle数据库相关知识点
已知表如下:
- ADO.Net对Oracle数据库的操作【转载】
一 ADO.Net简介 访问数据库的技术有许多,常见的有一下几种:开放数据库互联(ODBC).数据访问对象(DAO).远程数据对象 (RDO). ActiveX数据对象(ADO).我们今天主要要学习A ...
- 【转】ADO.Net对Oracle数据库的操作
一 ADO.Net简介 [转自网络,收藏学习] 访问数据库的技术有许多,常见的有一下几种:开放数据库互联(ODBC). 数据访问对象(DAO).远程数据对象(RDO). ActiveX数据对象(ADO ...
- Oracle数据库一些操作信息
Oracle数据库如何查看当前用户角色权限及默认表空间查看当前用户的一些信息,包括用户拥有的角色权限信息.用户表空间以及用户和默认表空间的关系等--查看用户的角色权限1.查看当前用户拥有的角色权限信息 ...
- jmeter实现对Oracle数据库的操作
实现目的 有时候,根据业务需要,可能需要直接对数据库进行性能测试,此时可利用jmeter对Oracle.MySQL等数据库进行相关测试. 脚本实现 添加JDBC Connection Configur ...
- Oracle 数据库简单操作
现在大型企业一般都用Oracle数据库,Oracle数据库在一般采用expdp,impdp 导出导入数据,但是在操作中经常会遇到一些问题.下面来浅析这些问题. 1. 导出数据 一般导出数据的时候需要建 ...
随机推荐
- C温故补缺(三):存储类声明符(auto,register,extern,static)
auto,register,extern,static 四个存储类声明符,用于定义变量/函数的作用域和声明周期 ① auto:自动变量,即普通变量,在平时定义变量时会自动赋予其auto类型 被auto ...
- PHP8.1.10手动安装教程及报错解决梳理
安装教程参考一:https://www.cnblogs.com/haw2106/p/9839655.html 安装教程参考二:https://www.cnblogs.com/jiangfeilong/ ...
- 【Java EE】Day13 Web概念回顾、Tomcat、Servlet
一.Web相关概念的回顾 1.软件架构 C/S B/S 2.资源分类 静态资源 所有用户访问得到相同结果 三剑客 浏览器通过静态解析引擎将从服务器接收到的静态资源显示到页面上 动态资源 不同用户访问得 ...
- Django框架路由层-无名有名分组-无名有名分组反向解析
目录 一:路由层 1.路由匹配(错误演示) 2.路由匹配错误原因 3.路由匹配(解决方式1) 4.settings配置文件控制自动添加斜杠匹配 5.url方法第一个参数是正则表达式(正规使用url) ...
- Spring学习笔记 - 第二章 - 注解开发、配置管理第三方Bean、注解管理第三方Bean、Spring 整合 MyBatis 和 Junit 案例
Spring 学习笔记全系列传送门: Spring学习笔记 - 第一章 - IoC(控制反转).IoC容器.Bean的实例化与生命周期.DI(依赖注入) [本章]Spring学习笔记 - 第二章 - ...
- PL/SQL Developer使用中文条件查询时无数据的解决方法
1.在PL/SQL Developer中执行sql命令:select userenv('language') from dual; 显示结果为:AMERICAN_AMERICA.ZHS16GBK: 2 ...
- 如何使用 EF Core 7 批量删除数据
在 EF Core 7 中,我们可以使用批量操作来删除多条数据.这种方式与之前的版本有所不同,本文将对比 EFCore 7 和之前版本批量删除数据的不同方式. 删除给定 ID 的数据 在 EF Cor ...
- 9、IDEA回退Git版本
转载自 在工作中有时候会要求我们将以前提交的代码新开一个分支,而把之前提交的分支回退到以前某个版本. 1.通过IDEA查看Git历史记录,复制当前版本号. 2.记录当前版本号后,再复制你要回退的版本号 ...
- 正确理解和使用JAVA中的字符串常量池
前言 研究表明,Java堆中对象占据最大比重的就是字符串对象,所以弄清楚字符串知识很重要,本文主要重点聊聊字符串常量池.Java中的字符串常量池是Java堆中的一块特殊存储区域,用于存储字符串.它的实 ...
- libcamera 简介
libcamera 简介 libcamera 是一个开源的多媒体库,用于在 Linux 操作系统上支持多种摄像头硬件的访问,libcamera 是一个用户空间库,可用于开发基于摄像头的应用程序,如相机 ...