小编bon*_*svr的帖子

将列添加到Oracle中的现有索引

我有一个相对较大的表(81M行)和一个索引.

我想在现有索引中添加一列.

我在Google上搜索过它,但我找不到方法.

我在某处读过,向索引添加列的唯一方法是删除并重新创建它.

但是,这里说它通常会在现有索引中添加列.(虽然作者不推荐它.)

那么,是否可以在现有索引中添加列,如果可能,这是一个好习惯吗?

oracle indexing oracle11g oracle11gr2

15
推荐指数
1
解决办法
3万
查看次数

"date"作为列名

我有一张名为日历的表.

其中一个列名为'date'

当我想选择日期列时,它会给出错误ORA-01747,即无效的table.column.

select date from calendars
Run Code Online (Sandbox Code Playgroud)

我想这是因为'date'是pl/sql的保留字.问题是甚至无法更改列名:

alter table calendars rename column date to date_d
Run Code Online (Sandbox Code Playgroud)

结果是:ORA-00904错误:标识符无效.

你有什么建议?

谢谢.

database oracle database-design ora-01747 ora-00904

12
推荐指数
2
解决办法
4万
查看次数

使用11g客户端从Oracle 10g数据库导出

数据库版本:10g企业版10.2.0.4.0版

客户端版本:11g企业版11.2.0.1.0版(Windows 7 64位)

当我尝试从数据库导出(exp)一个表时:

exp usr/pass@remote_db file=f.dmp tables=table
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

EXP-00008:遇到ORACLE错误904

ORA-00904:"POLTYP":标识符无效

EXP-00000:导出终止失败

我在网上搜索了它,我明白问题是版本不兼容.

你有什么建议我这样做的?

注意:我也尝试使用数据泵导出,但它给出:

UDE-00018: Data Pump client is incompatible with database version 10.2.0.4.0
Run Code Online (Sandbox Code Playgroud)

oracle oracle10g datapump oracle11gr2

10
推荐指数
1
解决办法
3万
查看次数

如何在Oracle中填充日历表?

我想在Oracle DB中维护一个日历表,我希望从2011年到2013年的所有日期(可能是任何一年)填写.我怎样才能做到这一点?

考虑我的数据库表有列和示例数据集是:

S.No  Cal_Dt      DayName 
1     01-01-2011  Monday
2     02-01-2011  Tuesday
3     03-01-2011  Wednesday
Run Code Online (Sandbox Code Playgroud)

等等.

我只关注Cal_Dt(DayName是可选的).

sql database oracle

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

SQL*Loader:处理数据中的分隔符

我正在通过 SQLLDR 将一些数据加载到 Oracle。源文件是“管道分隔”。

FIELDS TERMINATED BY '|'
Run Code Online (Sandbox Code Playgroud)

但有些记录的数据中包含管道字符,而不是作为分隔符。因此,它破坏了记录的正确加载,因为它将indata管道字符理解为字段终止符。

你能给我指出解决这个问题的方向吗?

数据文件约9GB,手动编辑比较困难。

例如,

加载行:

ABC|1234567|STR 9 R 25|98734959,32|2011年12月28日

拒绝行:

DE4|2346543|WE| 454|956584,84|2011年11月28日

错误:

Rejected - Error on table HSX, column DATE_N.
ORA-01847: day of month must be between 1 and last day of month
Run Code Online (Sandbox Code Playgroud)

DATE_N 列是最后一列。

oracle oracle11gr2 sql-loader

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

当包含(和)时使用regexp_substr提取字符串的一部分

我想使用regexp在oracle中提取字符串的以下部分:

String: FN_SUM(ACCRUED_INTEREST)
Output expected: ACCRUED_INTEREST
Run Code Online (Sandbox Code Playgroud)

我试过了 :

select regexp_substr('FN_SUM(ACCRUED_INTEREST)','([^)]') from dual;
Run Code Online (Sandbox Code Playgroud)

这给了我ORA-12725错误.

任何使用正则表达式的解决方案都将非常感激.

regex oracle plsql

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