小编kai*_*naw的帖子

启动时出现“ORA-03113:通信通道上的文件结尾”

在过去的三天里,我一直在这里阅读有关 Oracle 支持以及我能找到的任何其他地方的帖子,但我已经放弃了这个问题......

Oracle 数据库挂起。关闭数据库坐了几个小时,然后它就退出了。它不会重新启动。服务器已重新启动。Oracle 已重新启动。循序渐进:启动 nomount 工作,alter database mount 工作,alter database open 返回 ORA-03113。这一切都在本地主机上 - 而不是通过网络。机器没有运行任何类型的防火墙。

知道如何解决这个 ORA-03113 错误吗?在过去的 4.5 小时里,我一直在与印度的支持人员通电话,但我还没有找到任何有帮助的人。

oracle startup

28
推荐指数
1
解决办法
29万
查看次数

更新所有行

我想知道更新单个列的超大 Oracle 表中每一行的最有效方式。例如:

update mytable set mycolumn=null;
Run Code Online (Sandbox Code Playgroud)

或者:

update mytable set mycolumn=42;
Run Code Online (Sandbox Code Playgroud)

我的知识很可能是陈旧的。我所做的是改变表格以删除列。然后,我更改表以添加具有我要使用的新值的默认值的列。然后,我更改表以删除列的默认值。我发现这比仅运行更新要快得多,但我觉得有更好的方法。

oracle update

12
推荐指数
1
解决办法
4356
查看次数

Oracle空字符串转换为null

执行插入时,空字符串将转换为 null:

insert into test (f) values ('');
Run Code Online (Sandbox Code Playgroud)

现在,有一行 f 包含空值。

但是,当我查询表时,我不能使用 '':

select * from test where f='';
no rows selected
Run Code Online (Sandbox Code Playgroud)

我可以使用空值:

select * from test where f is null;
____F_
NULL
Run Code Online (Sandbox Code Playgroud)

所以......似乎Oracle决定不能将空字符串用于插入,但在执行查询时它们仍然是空字符串。关于空字符串何时变为空值以及何时仍为空字符串的文档在哪里?

null empty-string oracle

9
推荐指数
2
解决办法
5万
查看次数

Oracle 对表空间 USERS 没有权限

我有一个全新的 Oracle 数据库,它给出了错误:

ORA-01950: no privileges on tablespace 'USERS'
Run Code Online (Sandbox Code Playgroud)

我已经做好了:

alter user kainaw quota 100M on 'USERS';
grant unlimited tablespace to kainaw;
Run Code Online (Sandbox Code Playgroud)

尽管如此,单个插入仍会返回该错误。除了磁盘配额之外,还有什么会导致“对表空间 'USERS' 没有权限”错误?

更新:

Oracle 版本为 11.2.0.3.0 (11g)。我正在从服务器上的命令提示符登录。因此,我将用户 kainaw 更改为 sysdba。然后,我注销并登录用户 kainaw 进行测试:

insert into i.test values (1);
Run Code Online (Sandbox Code Playgroud)

注意:i.test 是一个只有数字字段的表。我收到上面的错误。我以 kainaw 的身份注销,以 sysdba 的身份登录,使用权限进行游戏,注销,登录,测试,错误,注销,登录,...

oracle permissions

6
推荐指数
2
解决办法
10万
查看次数

查询以前的记录 (Oracle)

考虑一个 Oracle 数据库,它的每条记录都有一个人、一个日期和一个值。当我提取记录时,我想非常快速和轻松地获得前一个记录,其中人在我获取的记录和前一个记录中都是相同的,并且日期是我获取的记录之前的最大日期。当我问这个时,通常会有很多混乱,所以这里是一个示例数据集:

PERSON,DATE,VALUE
1,2013-12-25,823
2,2013-11-20,384
1,2013-11-10,4837
1,2013-10-01 377
1,2014-01-01,8347
Run Code Online (Sandbox Code Playgroud)

现在,当我获取第一条记录时,我还想获取记录 1,2013-11-10,4837,因为 person 匹配(作为 1,而不是 2),并且前一条记录的日期是之前的最大日期我获取的记录。

我曾尝试使用 connect 子句,但它不能要求“最大日期小于当前记录日期的记录”。我使用的多重连接方法不起作用,因为记录太多 - 完成单个查询需要几个小时。

oracle

2
推荐指数
1
解决办法
2344
查看次数

标签 统计

oracle ×5

empty-string ×1

null ×1

permissions ×1

startup ×1

update ×1