Oracle问题总结
4.oracle中单引号和双引号的作用
5.不支持 insert into tableName values (...),(...)的写法
7.Oracle 删除用户时报 “必须指定 CASCADE 以删除 'nini'”
11.ORA-01950: 表空间'USERS'中无权限的2种解决办法
12.创建序列出错 SP2-0042: 未知命令 "MINVALUE 1" - 其余行忽略。
1.账号锁定了
ORA-28000: the account is locked
原因:这个用户已经被锁住了,一般是用错误的密码尝试次数太多,得解锁或者某些账号刚创建默认锁定的如scott用户。
解决办法:
用system或sys用户登陆,然后
ALTER USER username ACCOUNT UNLOCK;
或者
第一步:使用PL/SQL,登录名为system,数据库名称不变,选择类型的时候把Normal修改为Sysdba;
第二步:选择myjob,查看users;
第三步:选择system,右击点击“编辑”;
第四步:修改密码,把“帐户被锁住”的勾去掉;
第五步:点击“应用”再点击“关闭”;
第六步:重新登录就可以通过验证了;
2.忘记密码
ORA-01017: invalid username/password; logon denied
以sysdba登陆:
alter user scott identified by scott1234;
3.Oracle create session权利
user lacks CREATE SESSION privilege;logon denied
原因:
用户至少需要会话的权利,否则连接也不成功;
用户在会话的权利上,应该有其他操作的权利;
1 grant connect, resource to aaaa;
2 grant create session to aaaa;
4.oracle中单引号和双引号的作用
在Oracle数据库,单引号我们经常会用到,相对来说双引号用的频率少,但双引号的作用也是不可代替的,现简要说一下两者的作用。
一.单引号
1.单引号用于标识字符与数字的区别;
例如
select * from table_name where id=1;这种代表查询的是数字
select * from table_name where id='1';这种代表查询的是字符
2.当指定字符串文本时,必须用单引号将字符串文本引注
3.两个单引号表示一个单引号(两个'' 表示了一个')
二.双引号
1.如果创建对象的时候,对象名、字段名加双引号,则表示Oracle将严格区分大小写,否则Oracl都默认大写。
示例:
select '字段1' As "列a",'字段2' "小写b",'字段c' 默认大写c from dual;
列名分别是:列a,小写b,默认大写C
2.双引号用在字符串中当成普通字符处理
当表中字段与oracle数据库关键字相同时,可以用双引号引注,这样可以避免冲突
3.双引号用在to_char函数里的字符串中时,有特殊作用,可以将特殊字符包起来,避免出现ORA-01821: date format not recognized错误。也就是说,去掉双引号和其包含的字符后,剩下的应该是一个合法的格式串。
例如:select to_char(sysdate, 'hh24"小时"mi"分"ss"秒"') ASRESULT from dual;
5.不支持 insert into tableName values (...),(...)的写法
mysql中的写法:
INSERT INTO 某表 VALUES(各个值),VALUES(各个值),.....;
-- 或者
INSERT INTO 某表 VALUES(各个值),(各个值),.....;
Oracle 和 SQL Server也是不支持这两种写法的
oracle 中要么单行插入 要么可以如下表示:
INSERT ALL
INTO 某表 VALUES(各个值)
INTO 某表 VALUES(各个值)
INTO 某表 VALUES(各个值)
select 1 from dual;
后边跟的SELECT 语句我们可以从虚拟表里查如 SELECT 1 FROM DUAL。注意后边跟的SELECT语句可以随意,不过不是把它SELECT出来的内容插入前边的表里,而是起到前边的多个数据每次插入多少行的作用,这个多少行是和后边跟的SELECT语句查出来几条而定的,如后边的跟的SELECT 语句查出了15条记录,那么前边的"INSERT ALL INTO a表 VALUES(各个值1) INTO a表 VALUES (其它值2) INTO a表 VALUES(其它值3)"就会先插入值1对应的各个字段插入15条记录,然后插入值2各个对应的字段15条记录,然后插入值3对应的各个字段15条记录,也就是说有点按列插入的意思。
我们要的是批量插入多个VALUES这样的一条记录,所以后边的SELECT 语句只要能查出一条记录就行,建议大家后边用SELECT 1 FROM DUAL。
6.SELECT 1 FROM dual
select 1 from table;
select anycol(目的表集合中的任意一行) from table; -- (目的表集合中的任意一行)
select * from table;
drop user se cascade; 表示删除用户SE,同时删除 SE 用户下的所有数据对象。
还有一个办法就是先删除 se 下的所有数据对象,使 se 变成一个啥也没有的空用户,再 drop user se;
一般来说要具有 dba 权限的用户才能删除其他用户
在存储过程(PROCEDURE)和函数(FUNCTION)中没有区别;
在视图(VIEW)中只能用AS不能用IS;
在游标(CURSOR)中只能用IS不能用AS。
从其定义也可以看出没什么区别,要是有估计暂时也很少有人发下:
create [or replace] procedure procedure_name
[(parameter_name [in | out | in out] type [,........])]
{is | as}
begin
procedure_body
end procedure_name;
9.等号和不等号
不等号
<>
!=
~=
^=
等于号
=
赋值
:=
Oracle 提供了>(大于),>=(大于等于),<(小于),<=(小于等于),=(等于),<>或!=6(不等于)6个常用的比较运算符。
记住:null只能通过is null或者is not null来判断,其它操作符与null操作都是false。
如上创建物化视图,
大家都知道目标用户需要给创建用户 CREATE MATERIALIZED VIEW 权限
但是只是这样还是会报权限错误
如何处理:
REFRESH FORCE ON COMMIT
ENABLE QUERY REWRITE
因为在创建该物化视图的时候带了两个参数 需要把使用这两个权限给创建用户
GRANT ON COMMIT REFRESH to ANALYSIS;
GRANT GLOBAL QUERY REWRITE TO analysis;
这样就可以了...
其他同理
-
11.ORA-01950: 表空间'USERS'中无权限的2种解决办法
SQL> connect / as sysdba
已连接。
SQL> grant resource to zhaoh;
已连接。
SQL> create table test (ID number,name varchar2(40));
------------------------------ ---------------------------------------- ---
ZHAOH CREATE TABLE NO
SQL> connect / as sysdba;
已连接。
SQL> ALTER USER "ZHAOH" QUOTA UNLIMITED ON "USERS";
用户已更改。
SQL> connect zhaoh/a
已连接。
SQL> create table test (ID number,name varchar2(40));
表已创建。
12.创建序列出错 SP2-0042: 未知命令 "MINVALUE 1" - 其余行忽略。
语句
-- create SEQUENCE for user id CREATE SEQUENCE id_control MINVALUE 1 MAXVALUE 9999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER CYCLE;
报错
SP2-0042: 未知命令 "MINVALUE 1" - 其余行忽略。
SP2-0734: 未知的命令开头 "MAXVALUE 9..." - 忽略了剩余的行。
SP2-0734: 未知的命令开头 "INCREMENT ..." - 忽略了剩余的行。
SP2-0310: 无法打开文件 "WITH.sql"
SP2-0042: 未知命令 "CACHE 20" - 其余行忽略。
SP2-0734: 未知的命令开头 "NOORDER CY..." - 忽略了剩余的行。
解决办法( sql脚本按行执行)
-- create SEQUENCE for user id CREATE SEQUENCE id_control MINVALUE 1 MAXVALUE 9999999999 INCREMENT BY 1 START WITH 1 CACHE 20NOORDER CYCLE;
Oracle问题总结的更多相关文章
- Oracle分析函数入门
一.Oracle分析函数入门 分析函数是什么?分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计 ...
- Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级
Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 5.安装Database软件 5. ...
- Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作
Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 1.实施前准备工作 1.1 服务器安装操 ...
- Oracle 的基本操作符
!= 不等于 select empno,ename,job from scott.emp where job!='manager' ^= 不等于 select empno,ename,job from ...
- 使用Zabbix监控Oracle数据库
Orabbix介绍 监控Oracle数据库我们需要安装第三方提供的Zabbix插件,我们先测试比较有名的Orabbix,http://www.smartmarmot.com/product/orabb ...
- 基于Oracle安装Zabbix
软件版本 Oracle Enterprise Linux 7.1 64bit Oracle Enterprise Edition 12.1.0.2 64bit Zabbix 3.2.1 准备工作 上传 ...
- Oracle Database 12c Data Redaction介绍
什么是Data Redaction Data Redaction是Oracle Database 12c的高级安全选项之中的一个新功能,Oracle中国在介绍这个功能的时候,翻译为“数据编纂”,在EM ...
- 使用Oracle官方巡检工具ORAchk巡检数据库
ORAchk概述 ORAchk是Oracle官方出品的Oracle产品健康检查工具,可以从MOS(My Oracle Support)网站上下载,免费使用.这个工具可以检查Oracle数据库,Gold ...
- 利用Oracle RUEI+EM12c进行应用的“端到端”性能诊断
概述 我们知道,影响一个B/S应用性能的因素,粗略地说,有以下几个大的环节: 1. 客户端环节 2. 网络环节(可能包括WAN和LAN) 3. 应用及中间层环节 4. 数据库层环节 能够对各个环节的问 ...
- 使用技术手段限制DBA的危险操作—Oracle Database Vault
概述 众所周知,在业务高峰期,某些针对Oracle数据库的操作具有很高的风险,比如修改表结构.修改实例参数等等,如果没有充分评估和了解这些操作所带来的影响,这些操作很可能会导致故障,轻则导致应用错误, ...
随机推荐
- iptables之精髓(二)
iptables实际操作 使用-v选项后,iptables为我们展示的信息更多了,那么,这些字段都是什么意思呢?我们来总结一下 pkts:对应规则匹配到的报文的个数. bytes:对应匹配到的报文包的 ...
- 《图解 HTTP》读书笔记
<图解 HTTP>一书是日本学者上野宣所著,2014 年由于均良先生翻译并在国内出版.因为作者使用十分生动的语言和浅显易懂的案例将 HTTP 协议讲解得深入浅出,所以深受开发者喜爱.现在在 ...
- QFramework 使用指南 2020 (四):脚本生成(2)ViewController 与 ViewController 嵌套绑定
在上一篇,我们学习了,脚本生成的基本使用. 在这一篇,我们试着深入,聊聊脚本生成给我们带来的便利. 脚本生成的便利 首先,我们要知道,在 Unity 的游戏世界中都是以 GameObject 为单位的 ...
- Mysql 设置远程连接(自用-----仅供参考)
1.连接数据库 -----> mysql -u root -p 2.给权限 ------> grant all privileges on *.* to 'root'@'%' iden ...
- UPDATE SELECT OUTPUT
-- 定义临时表变量,用于 output into 使用 DECLARE @VarOrderStatus table ( OrderNo nvarchar(50) NULL) -- update 表U ...
- .NET的垃圾回收机制
.NET的垃圾回收机制: CLR管理内存的区域主要有三块: 一: 线程的堆栈 ,用于分配值类型实例.堆栈主要有操作系统管理,不受垃圾收集器的控制,当值类型实例所在的方法结束时,其存储单位自动释放.栈的 ...
- Design Circular Deque
Design your implementation of the circular double-ended queue (deque). Your implementation should su ...
- java类和对象详解
类和对象 java 是面向对象的语言 即 万物皆对象c语言是面向过程语言 一.怎么去描述一个对象? (1)..静态的(短时间内不会改变的东西) 例如:外观,颜色,品牌 (2).动态的(动作) 可以干什 ...
- 如何使用RedisTemplate访问Redis数据结构之Hash
Redis的Hash数据机构 Redis的散列可以让用户将多个键值对存储到一个Redis键里面. public interface HashOperations<H,HK,HV> Hash ...
- HTTP协议的简单了解
1. 用于服务端和客户端通信 客户端发送请求,服务端提供资源: 通过URI定位资源. 2. 通过请求和响应交换进行通信 客户端发送请求,服务端响应请求并返回数据: 请求报文:请求方法.URI.协议版本 ...