标签: oracle8i

Oracle:从同一行的不同列中选择最大值

整个问题几乎都在标题中.对于表的每一行,我想选择列的子集的最大值.

例如,从此表中

name m1 m2 m3 m4
A    1  2  3  4
B    6  3  4  5
C    1  5  2  1
Run Code Online (Sandbox Code Playgroud)

结果将是

name max
A    4
B    6
C    5
Run Code Online (Sandbox Code Playgroud)

查询必须与oracle 8i兼容.

sql oracle oracle-sqldeveloper oracle8i

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

使用 SQL 从日期中减去 n 天

说到 Oracle,我是一个初学者。我无法弄清楚如何做类似的事情:

SELECT ID, NAME, TO_CHAR(DATEBIRTH, 'DD/MM/YYYY HH24:MI:SS') 
FROM PEOPLE WHERE DATEBIRTH >= ANOTHERDATE - NDAY
Run Code Online (Sandbox Code Playgroud)

简而言之,我想选择在特定日期和时间前 N 天出生的每个人,但我不太确定这是这样做的方法,也不确定它会给我期望的结果。

PS:我是在oracle8i下开发的。

sql oracle date-arithmetic oracle8i

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

连接到oracle数据库时显式选择jdbc驱动程序

我正在研究一些有时需要连接到oracle 8.1.7数据库的软件,有时需要连接到oracle 10g数据库才能执行一些查询.

连接到8.1.7数据库时,我需要使用ojdbc14.jar驱动程序和10g数据库的ojdbc6.jar驱动程序.

当这两个驱动程序都在类路径中时,似乎自动驱动程序选择不够智能,无法选择正确的驱动程序,有什么方法可以指定我的代码中哪一个是首选的?

我目前没有使用任何连接池或类似的抽象,但如果需要引入类似的东西也不会有问题.

java jdbc oracle10g oracle8i

5
推荐指数
1
解决办法
1127
查看次数

在Oracle中添加逗号(,)

鉴于此查询:

select distinct subject_key
from mytable
Run Code Online (Sandbox Code Playgroud)

结果:

subject_key
-----------
90896959
90895823
90690171
90669265
90671321
Run Code Online (Sandbox Code Playgroud)

如何在Oracle中编写查询(使用Aqua Data Studio后端Oracle 8i)结果:

subject_key
-----------
90896959,
90895823,
90690171,
90669265,
90671321
Run Code Online (Sandbox Code Playgroud)

谢谢大家!我是否希望改变输出而不是如下所示.我怎么写它,同一个平台.谢谢.

subject_key
90896959,  90895823, 90690171,  90669265, 90671321
Run Code Online (Sandbox Code Playgroud)

sql string oracle oracle8i

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

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

如何检查Oracle 8中的包中是否存在过程?

我在这里看到一些解决方案来检查包中的过程,但它们只适用于oracle 9或10+.

但是有可能在Oracle 8i中进行此检查吗?在Oracle 8中,您没有DBA_PROCEDURES或类似的东西.

任何帮助都会很棒.

oracle plsql oracle8i

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

Oracle:Oracle 8i中REGEXP_LIKE函数的替代方案

我有一个在where子句中使用REGEXP_LIKE函数的SQL,现在我需要相当于将在Oracle 8i中运行的函数.

正则表达式看起来像这样:

where REGEXP_LIKE(parm, '^[PMF][[:digit:]]+[_].*')
Run Code Online (Sandbox Code Playgroud)

提前致谢.

regex sql oracle oracle8i

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

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

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

我用内部循环中的一些代码修改了原始脚本来处理嵌入的逗号和引号字符.

我无法在Oracle 8i上编译它.

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

    CREATE OR REPLACE PROCEDURE dump_table_to_csv
            ( p_tname IN VARCHAR2,
            p_dir   IN VARCHAR2,
            p_filename IN VARCHAR2 )
    IS

    l_output        utl_file.file_type;
    l_theCursor     INTEGER DEFAULT dbms_sql.open_cursor;
    l_columnValue   VARCHAR2(4000);
    l_status        INTEGER;
    l_query         VARCHAR2(1000) DEFAULT 'select * from ' || p_tname;
    l_colCnt        NUMBER := 0;
    l_separator     VARCHAR2(1);
    l_descTbl       dbms_sql.desc_tab;
    l_quote    VARCHAR2(1);

    BEGIN
            l_output := utl_file.fopen( p_dir, p_filename, 'w', 32760 );
            -- adjust date so the format is compatible with the target system
            -- in this case, PostgreSQL 9 …
Run Code Online (Sandbox Code Playgroud)

csv oracle plsql oracle8i

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

如何在 SQL 列名中使用符号?

我尝试使用带有减号、点和其他一些符号的列名称。Oracle SQL 解析器不会排除它们。像这样:

select
    a.ID as Article-Number, a.Name as Name
from
    Articles a
where
    (a.ID = '3264')
Run Code Online (Sandbox Code Playgroud)

而且它也不例外a.ID as 'Article-Number'(说"FROM keyword not found where expected")。列名中可以包含符号吗?

sql oracle select oracle8i

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

Oracle 8i中CASE的替代方案

感谢stackoverflow社区,我发现由于CASE WHEN,Oracle 8i不支持此查询.

select (case
         when seqnum = 1 then
          '1'
         when seqnum = cnt then
          '0'
       end) as value1,
       (case
         when seqnum = 1 then
          t.BEGIN_DT
         when seqnum = cnt then
          t.END_DT
       end) as TIME1,      
       t4.UNIT1 || '.SUBBATCH_TRIGGER' TAG     
  from (select t.*,
               row_number() over(partition by t.BATCH_ID, t.plant_unit, t3.ID2 order by t.BEGIN_DT) as seqnum,
               count(*) over(partition by t.BATCH_ID, t.plant_unit, t3.ID2) as cnt
          from SCH2.tb_pg_unit_stap t
join (select ID1,batch_id from SCH2.VW_BATCH) t2 on t.BATCH_ID = t2.BATCH_ID
join (select ID2,ID1 from SCH1.STEP) …
Run Code Online (Sandbox Code Playgroud)

oracle oracle8i

-1
推荐指数
1
解决办法
438
查看次数