标签: oracle10g

我可以在Oracle 10g数据库上使用Oracle JDBC 12.1.0.1(适用于12c数据库)吗?

只是一个简单的问题(我猜).Oracle 为Oracle Database 12c发布了一个新的JDBC驱动程序,包括Java 7 JDBC驱动程序(ojdbc7 - 12.1.0.1).在这里,我们一直在使用Oracle 10g数据库和ojdbc6 for Oracle 11g(11.2.0.4),没有任何问题.现在,我的问题.

如果我升级我的应用程序服务器以使用ojdbc7 for Oracle 12c,它是否存在风险?Oracle是否保持其驱动程序与先前版本的兼容性?

java oracle jdbc oracle10g oracle12c

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

填充数据集时ODP.net Oracle Decimal Number精度问题.例外:算术运算导致溢出

我正在使用c#.net 2(Visual Studio 2005 SP1)尝试使用来自Oracle10g数据库的select*from table的结果填充数据集.无法在此客户端站点更改.net框架,IDE和数据库.

我正在使用ODP.net提供程序连接,dll版本是2.102.2.20

当我运行fill命令时,我得到一个例外:

算术运算导致溢出

此外,如果我尝试查看Visual Studio设计器中的违规列(显示表数据),我得到 对于表中此列的每一行.如果我的查询选择其他具有整数的列(例如省略此列),则代码可以正常工作.

当我从Toad在数据库中查看时,相关列看起来很好,数据如下所示:

919.742866695572

我需要蒙特卡罗模拟所需的精度.

如果不是使用数据适配器来填充数据表我使用datareader并调用dataReader.getValue(columnIndex)我得到相同的错误但是如果我调用dataReader.GetOracleDecimal(columnIndex)然后我得到我正在寻找的结果,没有错误.

我宁愿使用数据适配器并填充数据集(注意这些是无类型数据集,因为我无法从oracle db中获得自动生成的强类型数据集).我不想使用datareader并遍历结果(选择列值),因为我试图将其作为通用方法编写,以适用于许多场景,无论列数,需要特定的十进制列索引通过数据类型获取调用.

有人可以帮忙吗?我可以使用新版本的ODP.net dll连接到较旧的Oracle10g数据库吗?我想知道这是否会有所帮助.

谢谢

c# oracle datatable odp.net oracle10g

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

oracle中的索引类型?

oracle中的索引类型是什么?如何识别需要创建的索引?

oracle oracle10g

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

Oracle 10g:从XML中提取数据(select)(CLOB类型)

我是甲骨文的新手,而且我 - 也许是微不足道的 - 选择中的一个问题.(我正在使用Oracle 10g Express Edition).

我有一个带字段CLOB的数据库:mytab.xml这个列有一个像这样的XML:

<?xml version="1.0" encoding="iso-8859-1"?>
<info>
<id> 954 </id>
<idboss> 954 </idboss>
<name> Fausto </name>
<sorname> Anonimo </sorname>
<phone> 040000000 </phone>
<fax> 040000001 </fax>
</info>
Run Code Online (Sandbox Code Playgroud)

我正在尝试进行"简单"选择,例如,获取'fax'标签的值.但我有点问题,我无法理解我的错误.例如:

select extract(xml, '//fax').getStringVal() from mytab;
ORA-00932: inconsistent datatypes: expected - got

select extract(xmltype(xml), '//fax').getStringVal() from mytab;
ORA-06502: PL/SQL: numeric or value error
ORA-06512: at "SYS.XMLTYPE", line 254
Run Code Online (Sandbox Code Playgroud)

我也试过'extractvalue',但我遇到了同样的问题.我做错了哪里?

xml oracle oracle10g ora-00932

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

如何确定SQL中的字符串是否为数字?

在Oracle 10g的SQL查询中,我需要确定字符串是否为数字.我怎样才能做到这一点?

sql numeric oracle10g

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

Oracle列别名 - 来自关键字未找到的位置

SELECT col1 'COLUMN 1'
FROM TABLENAME
Run Code Online (Sandbox Code Playgroud)

我收到的错误是"未找到关键字的关键字"

如何在Oracle 10g中为列别名提供一些示例表示赞赏

oracle10g

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

Oracle - 物化视图在完全刷新期间仍可访问.这是如何运作的?

在我们的一个应用程序中,我们有一个庞大的物化视图,每天刷新三次,需要七个小时才能刷新.(不太理想,我知道).这让我很困惑,因为我确实认为用户和会话在刷新时无法访问这个物化视图,但显然他们可以!(刷新类型是完全刷新)

在完全刷新期间,根据我的理解,删除现有数据集,然后重新执行查询.如果这是真的,那么在刷新物化视图时,用户/其他会话如何能够访问物化视图

oracle materialized-views oracle10g

13
推荐指数
1
解决办法
7400
查看次数

如何识别存储在Oracle DATE列中的无效(损坏)值

Oracle 10.2.0.5

在DATE列中标识表中具有"无效"值的行的最简单方法是什么.这里的"无效"是指我的意思是违反Oracle日期值规则的二进制表示.

我最近遇到了一个存储在列中的无效日期的问题.

我能够使用查询谓词来查找特定的有问题的行:

  WHERE TO_CHAR(date_expr,'YYYYMMDDHH24MISS') = '00000000000000'
Run Code Online (Sandbox Code Playgroud)

在我的情况下,世纪字节无效......

 select dump(h.bid_close_date) from mytable h where h.id = 54321

 Typ=12 Len=7: 220,111,11,2,1,1,1
Run Code Online (Sandbox Code Playgroud)

世纪字节应该是100 +两位数世纪.在这种情况下,增加了额外的100,好像世纪价值是"120",使得年份"12011".(我知道将无效DATE值引入数据库的唯一方法是使用OCI,使用本机7字节DATE表示.)

在这种情况下,TO_CHAR函数返回一个可识别的字符串,我可以用它来识别不稳定的DATE值.

我的问题:是否有更通用或更简单的方法(最好使用SQL SELECT语句)来识别DATE列中具有"无效"值的行.

sql oracle date oracle10g

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

将唯一索引更改为唯一索引

我有一些非独特的约束,我想改变成唯一约束(业务规则自数据模型制定以来已经改变).有没有办法在删除和重新创建作为唯一约束的情况下执行此操作?我在想这个alter constraint命令会有一个选项,但我没找到任何东西.

谢谢!!

oracle constraints oracle10g unique-constraint

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

由函数引起的Oracle 11中的变异表

我们最近从Oracle 10升级到Oracle 11.2.升级后,我开始看到由函数而不是触发器引起的变异表错误(我之前从未遇到过).它是在旧版Oracle中运行的旧代码.

这是一个会导致错误的场景:

create table mutate (
    x NUMBER,
    y NUMBER
);

insert into mutate (x, y)
values (1,2);

insert into mutate (x, y)
values (3,4);
Run Code Online (Sandbox Code Playgroud)

我创建了两行.现在,我将通过调用此语句来加倍我的行:

insert into mutate (x, y)
select x + 1, y + 1 
from mutate;
Run Code Online (Sandbox Code Playgroud)

这对于复制错误并不是绝对必要的,但它有助于我以后的演示.所以表格的内容现在看起来像这样:

X,Y
1,2
3,4
2,3
4,5
Run Code Online (Sandbox Code Playgroud)

一切都很好.现在是有趣的部分:

create or replace function mutate_count
return PLS_INTEGER
is
    v_dummy PLS_INTEGER;
begin
    select count(*) 
    into v_dummy
    from mutate;

    return v_dummy;
end mutate_count;
/
Run Code Online (Sandbox Code Playgroud)

我创建了一个函数来查询我的表并返回一个计数.现在,我将它与INSERT语句结合起来:

insert into mutate (x, y)
select x + …
Run Code Online (Sandbox Code Playgroud)

sql oracle plsql oracle10g oracle11g

13
推荐指数
2
解决办法
4105
查看次数