标签: plsql

如何使用 PL/SQL 更新表中字符串列的一部分?

我必须更新/替换表中包含 137 条记录的列之一中的一部分字符串。

要求:更新前,列具有如下值:

home/user/tarun/attachments/a.jpg
Run Code Online (Sandbox Code Playgroud)

更新后,列值应如下所示:

home/common/attachments/a.jpg
Run Code Online (Sandbox Code Playgroud)

因此,应该更新字符串的一部分。如何为它编写 PL/SQL 脚本?

sql oracle plsql sql-update

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

使用 CLOB 会出现 ORA-06502: PL/SQL: 数字或值错误

下面的代码抛出一个错误:“ORA-06502: PL/SQL: 数字或值错误 ORA-06512: 在第 24 行”。

DECLARE 
v_clob CLOB;
CURSOR cur_a
IS
SELECT
device_num,
Account_number,
CustomerName,
Prem_address ,
      contact_phone ,
      W_status ,
      A_status ,
      "12-1 AM" Twelve21,
      "1-2 AM" One22,
      "2-3 AM" Two23,
      "3-4 AM" Three24,
      CIn4Hrs
    FROM account a
    WHERE 1 =1 ;
BEGIN
  DBMS_LOB.CreateTemporary( v_clob, true );
  FOR rec IN cur_a
  LOOP
    v_clob := v_clob ||rec.device_num|| ',' ||rec.Account_number|| ',' ||rec.contact_phone || ',' ||rec.W_status|| ',' ||rec.A_status|| ',' ||rec.Twelve21|| ',' ||rec.One22|| ',' ||rec.Two23|| ',' ||rec.Three24|| ',' ||rec.CIn4Hrs|| ',' ||SUBSTR(rec.CustomerName,1,15)|| …
Run Code Online (Sandbox Code Playgroud)

oracle plsql clob

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

代码绝对正确,但是显示Sid为无效标识符

create or replace package body stu_package

as

procedure select_student(id number)

is

name varchar2(20);

begin

select sname into name from students where sid=id;

dbms_output.put_line(name);

end select_ student;

end stu_package;
Run Code Online (Sandbox Code Playgroud)

oracle plsql package

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

使用PL/SQL中的UTL_SMTP生成的电子邮件正文中的随机感叹号

当我生成一个值表并使用PL-sql中的UTL_SMTP将输出写为电子邮件正文时.

该表生成了5列和29行的组合.

问题是一些随机的感叹号!正在电子邮件正文中生成.

代码如下......

CREATE OR REPLACE PROCEDURE APPS.xxjdsu_crm_jobs_monitoring(
                                                   errbuf       OUT   VARCHAR2,
                                                   retcode      OUT   VARCHAR2,
                                                   p_subject             IN VARCHAR2,
                                                   P_recipient_to_list   IN VARCHAR2,
                                                   P_recipient_cc_list   IN VARCHAR2,
                                                   p_signature1          IN VARCHAR2,
                                                   p_signature2          IN VARCHAR2,
                                                   p_signature3          IN VARCHAR2,
                                                   p_signature4          IN VARCHAR2
                                                   )
AS
  l_recipient_to_list VARCHAR2(32767) :=lower(replace(P_recipient_to_list,';',','));
  l_recipient_cc_list VARCHAR2(32767) :=lower(replace(P_recipient_cc_list,';',','));
  l_Mail_Conn utl_smtp.Connection;
  l_Mail_Host   VARCHAR2(100) := 'localhost';
  l_From        VARCHAR2(80) ;
  l_Recipient   VARCHAR2(3000);
  l_run_date    DATE := sysdate;
  l_Subject     VARCHAR2(1000) ;
  l_priority    VARCHAR2(10) := 'NORMAL';
  l_instance    VARCHAR2(80);
  l_crlf        VARCHAR2(2) := chr(13)||chr(10);
  l_msg_body    clob := empty_clob;               --This LOB will be …
Run Code Online (Sandbox Code Playgroud)

sql oracle plsql

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

sql错误 - 唯一约束

我有一个像这样的数据迁移脚本.

Data_migration.sql

它的内容是


insert into table1 select * from old_schema.table1;
commit;
insert into table2 select * from old_schema.table2;
commit;
Run Code Online (Sandbox Code Playgroud)

并且在执行脚本时table1pk_productname约束

SQL> @ "data_migration.sql" 
Run Code Online (Sandbox Code Playgroud)

我将获得一个唯一的约束(pk_productname)违规.但是当我执行单独的sql语句时,我不会得到任何错误.这背后有任何原因.以及如何解决这个问题.

sql oracle plsql primary-key plsqldeveloper

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

如何打印非素数?PL/SQL

此代码用于打印1到30之间的非素数.它是如何工作的以及错误在哪里.

BEGIN  
    <<outer>>
    FOR i in 1..30
        <<inner>> 
        for k in 2..i-1 loop 
            if (mod(i, k) = 0) THEN 
                DBMS_OUTPUT.PUT_LINE(i);
                exit inner when (mod(i, k)= 0);
            end if;
        end loop inner
    end loop outer 
end;
Run Code Online (Sandbox Code Playgroud)

database oracle plsql

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

如何按字母顺序选择

我有这样的事情:

Select id , name from table1 (how to orderby alphabetical from the name(column))
Run Code Online (Sandbox Code Playgroud)

select 的结果应该是: 1.Alex 2.Bob 3.Charlie

oracle plsql

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

选择INTO INTEGER ARRAY

我想将表列(列类型为整数)中的值赋给整数数组.不幸的是我不能.

- 类型 -

CREATE OR REPLACE TYPE ABILITY_ID_ARRAY IS VARRAY(100) OF INTEGER
Run Code Online (Sandbox Code Playgroud)

- 程序中的分类

ABILITY_IDS ABILITY_ID_ARRAY;
Run Code Online (Sandbox Code Playgroud)

- 声明 -

SELECT ABILITY_FK INTO ABILITY_IDS 
FROM T_EDUCATION_ABILITY_REL 
WHERE EDUCATION_FK = edu_id;
Run Code Online (Sandbox Code Playgroud)

我收到了这个错误:

[错误] ORA-00932(16:12):PL/SQL:ORA-00932:不一致的数据类型:预期的UDT得到了NUMBER

sql oracle plsql

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

在pl sql oracle中的特定过程中使用了最大数量的参数

pl/sql过程传递的最大参数数量.这是我最后一次面试的问题.我搜索了很多网站,但都是不同的答案.

oracle plsql procedure

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

不存在和减去

任何人都可以告诉我SQL中NOT EXIST和MINUS运算符之间的差异吗?我何时可以使用?哪一个可以提供更好的性能?

sql plsql oracle10g oracle11g plsqldeveloper

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