问题标签 [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.
sql - 限制行输出
我在确定我需要从查询中输出的内容的正确语法时遇到了一些麻烦。
这是我的数据(不,这些不是正确的列名,我试图让它更容易阅读)我从中提取的实际表有 26 列数据。
所以,这里是选择规则:
如果类型是 P 选择该记录
如果员工没有 P 记录,选择 S
如果员工有多个 S 记录,选择较低的记录号或选择 Dept 不是 400 的记录(400 行将始终是较高的记录号)
如果只有一条 S 记录,并且 Dept 为 400,则应返回该行
这是目前的工作:
而我想要做的是把“limit = 1”(或类似的东西)放在最后,这样在多个 S 行的情况下,较低的 recordNumber 将是返回的行。
这是应该从上面的数据返回的记录集:
像泥一样清澈,对吧?
我不断收到错误。有没有一种我只是想念的“简单”方法?
谢谢你提供的所有帮助。
米歇尔
ssis - 从 SSIS 连接 Oracle 8i 和 11g
我正在使用 SSIS 为我当前的项目从 Oracle 8i 和 11g 连接和提取数据。但我了解到 oracle 11g 驱动程序只兼容 9i。
将 SSIS 与 11g 和 8i 连接的最可行的解决方案是什么?感谢您的建议。
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 来克服它?
oracle - Oracle 8i 说 PLS-00382:表达式类型错误,但我没有看到
以下代码基于 AskTom 的一个流行线程,导出到 CSV
我确实在内部循环中用一些代码修改了原始脚本,以处理嵌入的逗号和引号字符。
我无法让它在 Oracle 8i 上编译。
我使用 DBA Studio 设置了 utl_file_dir 的值。然后我使用 SQL*Worksheet 运行脚本。报告的错误表明第 46 行是问题所在。
oracle - 在 oracle 8i 中批量导出
如何使用可以通过 oracle cli 运行的命令从 Oracle 8i 数据库中导出数据?我最大的问题是,数据应该根据我使用的查询导出......例如,
select * from emp where emp_id>4
应该转储具有emp_id>4的记录。
我没有使用函数的权限。请帮忙!!
sql - 子查询返回多个值
我有以下查询给出了req_no and order_no
。order_no
是一个 sub_query ,您可以从下面的 sql 中看到。对于少数req_no
人来说,不止一个order_no's
,因此我得到了ORA-01427: single-row subquery returns more than one row
.
我想同时显示order_no
for one req_no
,我该如何实现呢?任何帮助都是非常可观的。
谢谢
PS我们客户的一个数据库仍然是Oracle 8i
。
Update 1
想要输出。
database - 根据更好的方法和缺陷改进代码
我有以下 PL/SQL 代码,用于调用 API(由客户端提供)以调整帐户。
如果在编写此块时有任何缺点或更好的方法或方法,我想改进我的代码。
PS 不幸的是,我们的客户仍在为他们的产品使用 Oracle 8i。
PLSQL 代码
sql-server - SQL Server 和 ORACLE 中的 STUFF 函数
对于这个话题,我有两个STUFF
问题。
第一个问题是STUFF
SQL Server 中的函数。第二个问题是关于STUFF
Oracle (8i) 中的功能。
问题 1:如何,
从我想要填充的列中删除?
示例,给定表格:
使用此脚本,它会产生:
如何删除结果以Red wine
仅显示(删除逗号(,)?
请注意:我没有写这个STUFF
函数。它是由一个叫 OMG Ponies 的人写的。
问题 2:与问题 1 相同,但语法在 Oracle 中:
我希望我的结果Red wine
只显示(删除逗号(,)。
sql - 提高性能
我对 SQL 中的快捷方式不太了解,所以我希望利用这里的智慧来帮助加快我正在使用的查询。我目前正在使用 Oracle 8i。
我有一个查询:
这大约需要 7 分钟或 10 秒来运行。
现在GPS_TABLE
是 6.586.429 行,并且随着新的 GPS 坐标被输入系统而继续增长,每天它在 6 列中增长约 8.000 行。
当前ACTIVITY_TABLE
为 1.989.093 行,并且随着新活动进入系统而继续增长,每天它在 31 列中增长约 2.000 行。
所以总而言之,这些都不是小表,我知道运行这个或类似的查询总会有时间。如您所见,我已经将其限制为仅过去 2 天的数据,但任何可以加快速度的东西都将不胜感激。
oracle - oracle 使用连接语法更新
我是 oracle 8i PL/SQL 的新手,请帮助我进行 PL/SQL 简单更新,我熟悉 T-SQL,但对 PL/SQL 感到困惑。
任何帮助将不胜感激,
Rgds阿凡