小编Jus*_*ave的帖子

在Oracle DB的CLOB字段中存储文件

我的oracle表中有一个CLOB数据类型的列.如何在此列中存储.txt文件以及如何检索相同的文件?

下面是表定义

fileID  Number
logFile CLOB
Run Code Online (Sandbox Code Playgroud)

提前致谢

plsql oracle10g

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

取一列并在一行上产生两个总和

非常简化,我有一列数字和一列日期.我想生成一行,将基于一个日期的数字合并为一列,将另一个日期合并为另一列.

数据看起来像这样 -

date      number
201111    500
201111    500
201111    500
201109    500
Run Code Online (Sandbox Code Playgroud)

我希望它看起来像这样 -

sum1    sum 2
1500      500
Run Code Online (Sandbox Code Playgroud)

我正在使用的代码:

SELECT SUM(A1.COL1),SUM(A2.COL1)
FROM TAB1 A1,TAB1 A2
WHERE A1.DATE = '201111'
AND A2.DATE = '201109'
Run Code Online (Sandbox Code Playgroud)

我得到的结果是 -

sum1    sum2
1000    1500
Run Code Online (Sandbox Code Playgroud)

基本上,它并不是总和sum1的总和(应该是1500但是返回1000)并且它总和sum2太多(应该是500但是返回1500).

sql oracle

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

在PLSQL中批量插入而不是循环?

我试图用批量插入或其他更有效的方法解决这段代码,但我没有想法.你会怎么解决这个问题.而不是循环这么多次我想在几次调用中更有效.请告诉我你会怎么做?尽可能使用代码!感谢名单

LOOP
-- Fetch a row
IF DBMS_SQL.FETCH_ROWS(cursor_handle) > 0 THEN
    DBMS_SQL.column_value(cursor_handle, 9, cont_id); 
    DBMS_SQL.COLUMN_VALUE(cursor_handle, 3, proj_nr);  
    HTP.BOLD('ContractID: ' || cont_id || ' ProjectNR: ' ||  proj_nr);
    HTP.BR;
ELSE
    EXIT;
END IF;

-- delete the old list before saving a new one
IF sek_nr = 1 THEN
  EXECUTE IMMEDIATE 'DELETE FROM W_Contracts WHERE user_id = :n' USING CURRENTUSER;
END IF;

EXECUTE IMMEDIATE 'Insert into W_Contracts values(''' || currentUser || ''', '
                   || sek_nr || ', sysdate, ' || cont_id || …
Run Code Online (Sandbox Code Playgroud)

plsql bulkinsert cursor oracle11g

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

Oracle-00972:标识符太长我的SQL出了什么问题?

<?php

// This leaves the db connection in $conng require_once('/tms/http/html_docs/tease/csp/csp_tease.php');

    /* This a logging function. When called with:
     */

    function log_tkt_to_db($tkt_number, $date, $uid, $description, $conng)
    {
        echo "$tkt_number|$date|$uid|$description<br>";

        $sqlinsert = "insert into TEASE_TKTLOGS  VALUES ( \"$tkt_number\", \"$date\", \"$description\",  \"$uid\")";
        echo $sqlinsert . "<br>";
        $insert = OCIParse($conng, $sqlinsert);
        // OCIExecute($insert, OCI_COMMIT_ON_SUCCESS);
        OCIExecute($insert);
    }

log_tkt_to_db("00000000", "07/13/2012", "jt898u", "this a test, this is only a test", $conng);
?>  
Run Code Online (Sandbox Code Playgroud)

我得到这个输出:

00000000|07/13/2012|jt898u|this a test, this is only a test
insert into TEASE_TKTLOGS (TICKET, DATE_TIME, CHANGE_DESC, …
Run Code Online (Sandbox Code Playgroud)

php sql oracle

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

从选择中删除下划线

在我的 select 语句中,一列包含下划线字符_。我想用空格替换下划线。例如,如果结果集列包含CLOSING_COMPANY,则结果应为CLOSING COMPANY

oracle select

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

在ORACLE中插入触发器

我是Oracle新手.我用这种语法创建了一个EVENT表:

CREATE TABLE Event
(event_id NUMBER (3) NOT NULL,
 event_date DATE NOT NULL,
 venue_id NUMBER (2) NOT NULL,
 concert_id NUMBER (3) NOT NULL
);
Run Code Online (Sandbox Code Playgroud)

我想创建一个触发器,以确保音乐会在8月份无法运行.我尝试了以下代码来创建触发器.触发器已成功创建,但在插入8月份的日期后,已插入.这不是假设的.

CREATE OR REPLACE TRIGGER check_date
  BEFORE INSERT ON event
DECLARE 
  event_date date;
BEGIN
  IF (to_char(event_date, 'mm') = 8) THEN
    raise_application_error(-20000, 'Concerts cannot be run during August');
  END IF;
END;
Run Code Online (Sandbox Code Playgroud)

sql oracle triggers plsql oracle10g

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

如何在Java中执行Oracle PLSQL块

我有一个像这样的PL/SQL块:

BEGIN
  FOR i IN 1..100
  LOOP
    UPDATE rptbody 
       SET comments = 'abcs';
     WHERE (rptno> 100 and rptno < 200) and ROWNUM<2;
    COMMIT;
  END LOOP;
END;
Run Code Online (Sandbox Code Playgroud)

需要使用Oracle JDBC执行此块.我尝试了以下方法:

  • 试图使用Statement对象执行此操作.由于这是一个块,因此引发了一个异常,说这不是一个sql语句

  • 这可以分成sql语句,但我有100个这样的块,这对于代码来说很麻烦,并且想把它留给sqlplus.

  • 尝试使用CallableStatement也没有用.

任何解决方案都会有帮助.

java sql oracle plsql jdbc

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

SQL 命令未运行(无效标识符)可能是 SYSDATE?

我在运行命令时遇到了一些麻烦,我认为这与 SYSDATE 命令有关:

CREATE TABLE crimes (
  crime_ID NUMBER(9),
  criminal_ID NUMBER(6),
  classification CHAR(1),
  data_changed DATE DEFAULT SYSDATE,
  status CHAR(2),
  hearing_date DATE,
  appeal_cut_date DATE,
);

Run Code Online (Sandbox Code Playgroud)

我明白了ORA-00904: : invalid identifier error。任何修复?

sql oracle-apex

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

警告:使用编译错误创建的过程?

为什么这会给我错误?

CREATE OR REPLACE trigger customerLineCount
BEFORE insert on  cust_line 
for each row
when(new.cust_id > 0)
DECLARE
    lineCount number;
BEGIN
    select count (*) into lineCount
    from  (cust_line inner join  customer
    on cust_line.cust_id = customer.cust_id)
    where (customer.cust_id = :new.cust_id)

    if :new.gender = "m" and lineCount = 3 THEN
        dbms_output.put_line ('Error! User already has 3 lines');
    elseif :new.gender = "f" and lineCount = 1 THEN
        dbms_output.put_line ('Error! User already has 1 line');
    end if;
END  customerLineCount;
/
Run Code Online (Sandbox Code Playgroud)

oracle triggers plsql

0
推荐指数
1
解决办法
4297
查看次数

Oracle - 性能问题.使用groupby查询

这是我正在使用的查询:

SELECT p.name, p.id
FROM v_emp e 
INNER JOIN  v_prof p ON e.code = p.code
WHERE e.emp_id IN  (SELECT  a.id 
                   FROM t_approval a 
                   WHERE  a.code1 <> 'R'
                   AND a.code2 = 'P'
                   AND a.date1 IS NULL 
                   AND a.date2 IS NULL
                   AND a.code3 = 'ADMIN'
                   GROUP BY a.id
                                   )
GROUP BY p.name, p.id
ORDER BY p.name
Run Code Online (Sandbox Code Playgroud)

查询执行时间超过4分钟.表t_approval有超过1500万条记录,我需要从该表中匹配搜索条件的不同ID.

该表已经有id,code1,code2,code3的索引.

请让我知道如何让这个运行得更快.

oracle performance group-by

0
推荐指数
1
解决办法
468
查看次数