【技术分享】oracle数据库相关操作

news2024/9/24 13:18:37

-- 截断表

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;

1​​​​​

​认准ORACLE官方授权机构

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

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

相关文章

Android性能优化之Thread native层源码分析(InternalError/Out of memory)

近期处理Bugly上OOM问题,很多发生在Thread创建启动过程,虽然最后分析出是32位4G虚拟内存不足导致,但还是分析下Java层Thread 源码过程,可能会抛出的异常InternalError/Out of memory。 Thread报错堆栈: Java线程创建…

数据库|手把手教你成为 TiDB 的 Contributor

一、背景 最近笔者在 AskTUG 回答问题的时候发现,在 6.5.0 版本出现了几个显示未启动必要组件 NgMonitoring 的问题贴。经过排查发现,是 ngmonitoring.toml 中的配置文件出现了问题。文件中的 endpoints 应该是以逗号分隔的,但是却写成了以空…

JavaWeb 项目实现(二) 注销功能

3.注销功能 接前篇,实现了登录功能之后,现在实现注销功能。 因为我们实现登录就是在Session中记录了用户信息。 所以注销功能,就是在Session中移除用户信息。 代码:删除Session中的用户信息,跳转登录页面 package…

【安全渗透】第一次作业(编码知识总结)

目录 1. ASCII编码 2、Unicode 3、UTF-8 1. ASCII编码 ASCII 是“American Standard Code for Information Interchange”的缩写,翻译过来是“美国信息交换标准代码”。ASCII 的标准版本于 1967 年第一次发布,最后一次更新则是在 1986 年&#xff0c…

QEMU源码全解析13 —— QOM介绍(2)

接前一篇文章:QEMU源码全解析12 —— QOM介绍(1) 本文内容参考: 《趣谈Linux操作系统》 —— 刘超,极客时间 《QEMU/KVM》源码解析与应用 —— 李强,机械工业出版社 特此致谢! 本回开始对QOM…

django学习笔记(1)

django创建项目 先创建一个文件夹用来放django的项目,我这里是My_Django_it 之后打开到该文件下,并用下面的指令来创建myDjango1项目 D:\>cd My_Django_itD:\My_Django_it>"D:\zzu_it\Django_learn\Scripts\django-admin.exe" startpr…

记录每日LeetCode 2500.删除每行中的最大值 Java实现

题目描述: 给你一个 m x n 大小的矩阵 grid ,由若干正整数组成。 执行下述操作,直到 grid 变为空矩阵: 从每一行删除值最大的元素。如果存在多个这样的值,删除其中任何一个。 将删除元素中的最大值与答案相加。 …

Reinforcement Learning with Code 【Chapter 7. Temporal-Difference Learning】

Reinforcement Learning with Code This note records how the author begin to learn RL. Both theoretical understanding and code practice are presented. Many material are referenced such as ZhaoShiyu’s Mathematical Foundation of Reinforcement Learning, . 文章…

Linux内核与内核空间是什么关系呢?

对内核空间的认识清晰了许多。要理解用户空间与内核空间需要有如下的几个认识: 内核的认识:从2个不同的角度来理解,一个是静态的角度,如“芦中人”所比喻,内核可以看做是一个lib库,内核对外提供的API打包…

快速远程桌面控制公司电脑远程办公

文章目录 快速远程桌面控制公司电脑远程办公**第一步****第二步****第三步** 快速远程桌面控制公司电脑远程办公 远程办公的概念很早就被提出来,但似乎并没有多少项目普及落实到实际应用层面,至少在前几年,远程办公距离我们仍然很遥远。但20…

1分钟上手Apifox

1、客户端右上角账号设置-生成令牌 2、IDEA下载插件 Apifox Helper 3、 配置ApiFoxHelper 令牌 4、在controller类界面右键 5、输入项目id 6、项目ID从客户端 项目设置-项目ID获取 7、导入成功 8、右键刷新查看导入的接口 9、自动生成数据(某postman还要自己手输&a…

说一说java中的自定义注解之设计及实现

一、需求背景 比如我们需要对系统的部分接口进行token验证,防止对外的接口裸奔。所以,在调用这类接口前,先校验token的合法性,进而得到登录用户的userId/role/authority/tenantId等信息;再进一步对比当前用户是否有权…

MyBatis 快速入门【中】

😀前言 本篇博文是MyBatis(简化数据库操作的持久层框架)–快速入门[上]的核心部分,分享了MyBatis实现sql的xml配置和一些关联配置、异常分析 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀&a…

软件外包开发的需求分析

需求分析是软件开发中的关键步骤,其目的是确定用户需要什么样的软件,以及软件应该完成哪些任务。需求分析是软件工程的早期工作,也是软件项目成功的基础,因此花费大量精力和时间去做好需求分析是值得的。今天和大家分享软件需求分…

数字孪生-数字城市效果实现方法

数字孪生-数字城市效果实现方法 效果图: 一、效果分析: .0 1、城市非主展示区域白模快速生成方案: 参考视频: 1、CityEngine 引用数据源生成。 cityengine2022一键生成城市模型,不用再用blendergis_哔哩哔哩_bil…

Python运算符列表及其优先顺序、结合性

本文表格对Python中运算符的优先顺序进行了总结,从最高优先级(最先绑定)到最低优先级(最后绑定)。相同单元格内的运算符具有相同优先级。除非句法显式地给出,否则运算符均指二元运算。 相同单元格内的运算…

数据安全之全景图系列——数据分类分级落地实践

1、数据分类分级现状 我们正处于一个数据爆炸式增长的时代,随着产业数字化转型升级的推进,数据已被国家层面纳入生产要素,并且成为企业、社会和国家层面重要的战略资源。数据分类分级管理不仅是加强数据交换共享、提升数据资源价值的前提条件…

Unreal MorphTarget Connect Bone MetaData Curve功能学习

MorphTarget Connected Bone和MetaData Curve是两个较冷门功能,近期在制作一些功能时留意到这2个内容,故研究一下。 1.MorphTarget Connected Bone 在骨架编辑面板中,选中MorphTarget时,可找到Connected Bone选项: …

[数据库]对数据库事务进行总结

文章目录 1、什么是事务2、事务的特性(ACID)3、并发事务带来的问题4、四个隔离级别: 1、什么是事务 事务是逻辑上的一组操作,要么都执行,要么都不执行。 事务最经典也经常被拿出来说例子就是转账了。假如小明要给小红…

图解SQL基础知识,小白也能看懂的SQL文章

本文介绍关系数据库的设计思想: 在 SQL 中,一切皆关系。 在计算机龄域有许多伟大的设计理念和思想,例如: 在 Unix 中,一切皆文件。 在面向对象的编程语言中,一切皆对象。 关系数据库同样也有自己的设计…