数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

oracle笔记


发布日期:2024年07月16日
 
oracle笔记

对于游标进于update(行锁)的操作实验

/*

declare

x number;

mc varchar();

cursor findtest is select idmyname from testtable FOR UPDATE;

begin

open findtest;

fetch findtest into xmc;

UPDATE testtable SET myname =myid WHERE CURRENT OF findtest;

DBMS_OUTPUTPUT_LINE(SQL%ROWCOUNT);

close findtest;

update testtable set myname=ss where id>;

DBMS_OUTPUTPUT_LINE(更新了||SQL%ROWCOUNT||条数据);

end;

*/

/

create or replace procedure debugout(mydir varcharmyfile varcharmyinfo varchar) as

进行文件写的存储过程调用方式 debugout(目录名文件名字符串)

注意:oracel对于plsql的文件操作默认是不能对文件进行操作的所以按下列步骤进行设定

关闭数据库修改initsidora文件在文件中增加utl_file_dir参数其值为目录名

例如对于windows c: c:\xx unix 为/tmp /tmp/xx

检查目录的文件系统确定oracle用户是否有关于该文件路径的读写权限若不具有则通过chmod filepath

再启动数据库这样存储过程就能够正常的生成和读取文件了

V_NewLine varchar();

v_FileHand UTL_FILEFILE_TYPE; 文件句柄

begin

v_FileHand:=UTL_FILEFOPEN(mydirmyfilea);

w 为写 r为读 a添加(文件不存在自生成)

UTL_FILEPUT_LINE(v_FileHandto_char(sysdateyyyymmdd hh:mi:ss ) || myinfo);

UTL_FILEFCLOSE(v_FileHand);

exception

when UTL_FILEINVALID_OPERATION then

raise_application_error(文件不能打开);

when UTL_FILEINVALID_FILEHANDLE then

raise_application_error(文件句柄不是打开的文件);

when UTL_FILEWRITE_ERROR then

raise_application_error(写操作失败);

when UTL_FILEINVALID_PATH then

raise_application_error(文件或目录写操作失败);

end;

/

可以执行DDL及DML语句的存储过程

CREATE OR REPLACE PROCEDURE PEXESQL(s varchar) as

i integer;

r integer;

begin

可以执行insertupdatedelete(事物不提交)

如果是create table等命令要明文授于系统权限对于drop table不用

i:=dbms_sqlopen_cursor;

dbms_sqlparse(isdbms_sqlv);

r:=dbms_sqlexecute(i);

commit;

dbms_sqlclose_cursor(i);

exception when others then

dbms_outputput_line(系统出了错);

if dbms_sqlis_open(i) then

dbms_sqlclose_cursor(i);

end if;

raise输出详细出错信息

raise;

dbms_outputput_line(系统出了错了SQLCODE=||sqlcode|| sqlerrm=||sqlerrm);

end;

/*

p不能安ORACEL的问题

原因

Any platform that uses the Intel Pentium processor with the

Sun JRE and Symmantec JIT will encounter this problem Windows NT

Windows and NetWare platforms are confirmed to be affected

解决办法

建个临时目录将oracle安装盘拷贝到该目录中

在该目录中搜索symcjitdll (我找到了两个)

将symcjitdll改名为symcjitold

运行\install\win目录下的setupexe 就应该可以了

*/

上一篇:合理选择盘区的管理方式提高数据库的性能

下一篇:在Oracle10g中建立没有域名的DB