我必须更新/替换表中包含 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 脚本?
下面的代码抛出一个错误:“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) 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) 当我生成一个值表并使用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) 我有一个像这样的数据迁移脚本.
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)
并且在执行脚本时table1有pk_productname约束
SQL> @ "data_migration.sql"
Run Code Online (Sandbox Code Playgroud)
我将获得一个唯一的约束(pk_productname)违规.但是当我执行单独的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) 我有这样的事情:
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
我想将表列(列类型为整数)中的值赋给整数数组.不幸的是我不能.
- 类型 -
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
pl/sql过程传递的最大参数数量.这是我最后一次面试的问题.我搜索了很多网站,但都是不同的答案.
任何人都可以告诉我SQL中NOT EXIST和MINUS运算符之间的差异吗?我何时可以使用?哪一个可以提供更好的性能?