问题标签 [oracle8i]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
206 浏览

sql - 限制行输出

我在确定我需要从查询中输出的内容的正确语法时遇到了一些麻烦。

这是我的数据(不,这些不是正确的列名,我试图让它更容易阅读)我从中提取的实际表有 26 列数据。

所以,这里是选择规则:
如果类型是 P 选择该记录
如果员工没有 P 记录,选择 S
如果员工有多个 S 记录,选择较低的记录号或选择 Dept 不是 400 的记录(400 行将始终是较高的记录号)
如果只有一条 S 记录,并且 Dept 为 400,则应返回该行

这是目前的工作:

而我想要做的是把“limit = 1”(或类似的东西)放在最后,这样在多个 S 行的情况下,较低的 recordNumber 将是返回的行。

这是应该从上面的数据返回的记录集:

像泥一样清澈,对吧?

我不断收到错误。有没有一种我只是想念的“简单”方法?

谢谢你提供的所有帮助。

米歇尔

0 投票
1 回答
756 浏览

ssis - 从 SSIS 连接 Oracle 8i 和 11g

我正在使用 SSIS 为我当前的项目从 Oracle 8i 和 11g 连接和提取数据。但我了解到 oracle 11g 驱动程序只兼容 9i。

将 SSIS 与 11g 和 8i 连接的最可行的解决方案是什么?感谢您的建议。

0 投票
2 回答
649 浏览

oracle - pl/sql 块中的子选择上的 Oracle 8i 动态 SQL 错误

我编写了一个 Oracle 函数(用于 8i)来获取受 DML 语句影响的行,模拟来自 PostgreSQL 的 RETURNING * 的行为。典型的函数调用如下所示:

SELECT tablename_dml('UPDATE tablename SET foo = ''bar''') FROM dual;

该函数是为每个表自动创建的,并使用动态 SQL 执行作为参数传递的查询。此外,动态执行查询的语句也包含在 BEGIN .. END 块中:

EXECUTE IMMEDIATE 'BEGIN'||query||' RETURNING col1, col2 BULK COLLECT INTO :1, :2;END;' USING OUT col1_t, col2_t;

这种特殊构造背后的原因是,它似乎是从影响多行的 DML 语句中获取值的唯一方法。col1_t 和 col2_t 都被声明为与表列对应的类型的集合。

最后,到问题。当传递的查询包含子选择时,函数的执行会产生语法错误。下面是一个简单的例子来说明这一点:

最后一条语句产生以下错误:(那里提到的 SELECT 是 SELECT min(id))

ORA-06550:第 1 行,第 32 列:PLS-00103:在预期以下情况之一时遇到符号“SELECT”:( - + mod not null others avg count current exists max min prior sql stddev sum variance execute forall time timestamp interval日期

此问题出现在 8i (8.1.6) 上,但不是 10g。如果 BEGIN .. END 块被删除 - 问题就消失了。如果查询中的子选择被其他东西(即常量)替换,问题就消失了。

不幸的是,我坚持使用 8i 并删除 BEGIN .. END 不是一个选项(参见上面的解释)。

这里有特定的 Oracle 8i 限制吗?是否可以使用动态 SQL 来克服它?

0 投票
2 回答
587 浏览

oracle - Oracle 8i 说 PLS-00382:表达式类型错误,但我没有看到

以下代码基于 AskTom 的一个流行线程,导出到 CSV

我确实在内部循环中用一些代码修改了原始脚本,以处理嵌入的逗号和引号字符。

我无法让它在 Oracle 8i 上编译。

我使用 DBA Studio 设置了 utl_file_dir 的值。然后我使用 SQL*Worksheet 运行脚本。报告的错误表明第 46 行是问题所在。

0 投票
1 回答
798 浏览

oracle - 在 oracle 8i 中批量导出

如何使用可以通过 oracle cli 运行的命令从 Oracle 8i 数据库中导出数据?我最大的问题是,数据应该根据我使用的查询导出......例如,

select * from emp where emp_id>4

应该转储具有emp_id>4的记录。

我没有使用函数的权限。请帮忙!!

0 投票
2 回答
3447 浏览

sql - 子查询返回多个值

我有以下查询给出了req_no and order_noorder_no是一个 sub_query ,您可以从下面的 sql 中看到。对于少数req_no人来说,不止一个order_no's,因此我得到了ORA-01427: single-row subquery returns more than one row.

我想同时显示order_nofor one req_no,我该如何实现呢?任何帮助都是非常可观的。

谢谢

PS我们客户的一个数据库仍然是Oracle 8i

Update 1

想要输出。

0 投票
1 回答
37 浏览

database - 根据更好的方法和缺陷改进代码

我有以下 PL/SQL 代码,用于调用 API(由客户端提供)以调整帐户。

如果在编写此块时有任何缺点或更好的方法或方法,我想改进我的代码。

PS 不幸的是,我们的客户仍在为他们的产品使用 Oracle 8i。

PLSQL 代码

0 投票
1 回答
3884 浏览

sql-server - SQL Server 和 ORACLE 中的 STUFF 函数

对于这个话题,我有两个STUFF问题。

第一个问题是STUFFSQL Server 中的函数。第二个问题是关于STUFFOracle (8i) 中的功能。

问题 1:如何,从我想要填充的列中删除?

示例,给定表格:

使用此脚本,它会产生:

如何删除结果以Red wine仅显示(删除逗号(,)?

请注意:我没有写这个STUFF函数。它是由一个叫 OMG Ponies 的人写的。

问题 2:与问题 1 相同,但语法在 Oracle 中:

我希望我的结果Red wine只显示(删除逗号(,)。

0 投票
2 回答
87 浏览

sql - 提高性能

我对 SQL 中的快捷方式不太了解,所以我希望利用这里的智慧来帮助加快我正在使用的查询。我目前正在使用 Oracle 8i。

我有一个查询:

这大约需要 7 分钟或 10 秒来运行。

现在GPS_TABLE是 6.586.429 行,并且随着新的 GPS 坐标被输入系统而继续增长,每天它在 6 列中增长约 8.000 行。

当前ACTIVITY_TABLE为 1.989.093 行,并且随着新活动进入系统而继续增长,每天它在 31 列中增长约 2.000 行。

所以总而言之,这些都不是小表,我知道运行这个或类似的查询总会有时间。如您所见,我已经将其限制为仅过去 2 天的数据,但任何可以加快速度的东西都将不胜感激。

0 投票
2 回答
1126 浏览

oracle - oracle 使用连接语法更新

我是 oracle 8i PL/SQL 的新手,请帮助我进行 PL/SQL 简单更新,我熟悉 T-SQL,但对 PL/SQL 感到困惑。

任何帮助将不胜感激,

Rgds阿凡