dbms_output.write的问题
有一个例子,我不清楚,请大家帮小弟解惑一下如下:
select id,name,description from downfilelist;
ID NAME DESCRIPTION
10001 oracle plsql编程指南 这是一本oracle的好书其中ID和NAME都是varchar类型,description是CLOB类型。接下来
declare
tempdesc CLOB;
icoun int;
istart int;
snewvar varchar(30);
begin
icount:=10;
istart:=5;
snewvar:=‘这本书是今年的畅销书‘;
select description into tempdesc from downfilelist
where id='10001' for update; 疑问就在这,是不是tempdesc这时候已经和ID为10001的description字段绷定在一起了?
dbms_output.put_line('更改前: '||tempdesc);
dbms_output.put_line('从'||istart||'开始的'||icount||'个字符被改写成'||snewvar);
dbms_output.write(tempdesc,icount,istart,snewvar);--我不清楚的是,这改写的是变量,怎么表里面的数据也改写了?
commit;
end;
/更改前:这是一本oracle的好书
从5开始的10个字符被改写成:这本书是今年的畅销书
pl/sql过程已成功完成结果为:
select id,name,description from downfilelist;
ID NAME DESCRIPTION
10001 oracle plsql编程指南 这是一本这本书是今年的畅销书
有一个例子,我不清楚,请大家帮小弟解惑一下如下:
select id,name,description from downfilelist;
ID NAME DESCRIPTION
10001 oracle plsql编程指南 这是一本oracle的好书其中ID和NAME都是varchar类型,description是CLOB类型。接下来
declare
tempdesc CLOB;
icoun int;
istart int;
snewvar varchar(30);
begin
icount:=10;
istart:=5;
snewvar:=‘这本书是今年的畅销书‘;
select description into tempdesc from downfilelist
where id='10001' for update; 疑问就在这,是不是tempdesc这时候已经和ID为10001的description字段绷定在一起了?
dbms_output.put_line('更改前: '||tempdesc);
dbms_output.put_line('从'||istart||'开始的'||icount||'个字符被改写成'||snewvar);
dbms_output.write(tempdesc,icount,istart,snewvar);--我不清楚的是,这改写的是变量,怎么表里面的数据也改写了?
commit;
end;
/更改前:这是一本oracle的好书
从5开始的10个字符被改写成:这本书是今年的畅销书
pl/sql过程已成功完成结果为:
select id,name,description from downfilelist;
ID NAME DESCRIPTION
10001 oracle plsql编程指南 这是一本这本书是今年的畅销书
write是包dbms_output中一个函数
PROCEDURE DISABLE
PROCEDURE ENABLE
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
BUFFER_SIZE NUMBER(38) IN DEFAULT
PROCEDURE GET_LINE
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
LINE VARCHAR2 OUT
STATUS NUMBER(38) OUT
PROCEDURE GET_LINES
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
LINES TABLE OF VARCHAR2(255) OUT
NUMLINES NUMBER(38) IN/OUT
PROCEDURE NEW_LINE
PROCEDURE PUT
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
A VARCHAR2 IN
PROCEDURE PUT
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
A NUMBER IN
PROCEDURE PUT_LINE
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
A VARCHAR2 IN
PROCEDURE PUT_LINE
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
A NUMBER IN