oracle定时执行存储过程

oracle定时执行存储过程
oracle定时执行存储过程

实现的功能:

每隔一分钟自动向getSysDate表中插入当前的系统时间。

一、创测试表

二、创要定时执行的存储过程

三、创建JOB,即创建待执行的定时任务过程

四、启动JOB,即启动并运行定时任务过程

五、查看运行效果

结果如下:

部分重点参数补充说明:

删除job:dbms_job.remove(jobno);

修改要执行的操作:job:dbms_job.what(jobno,what);

修改下次执行时间:dbms_job.next_date(job,next_date);

修改间隔时间:dbms_job.interval(job,interval);

停止job:dbms.broken(job,broken,nextdate);

启动job:dbms_job.run(jobno);

修改job_queue_processes的值:(保证其不为0否则JOB不自动运行)

可通过select * from v$parameter;查看其值;

或者直接用show parameter job_queue_processes;查看如下:

方法1.startup pfile='C:oracleora90databaseinitorcl.ora';

//这个方法用来修改initorcl.ora文件的job_queue_processes参数,然后重新启动数据库

方法2.alter system set job_queue_processes=10

//这个方法不用重启数据库就可以生效,系统自动修改init.ora文件以后即可生效

plsql安装和配置连接教程(附一些常用设置)

plsql安装和配置连接教程 总体步骤:先安装oracle client端,然后安装plsql,配置tnsname.ora 一:安装oracle client端 下载地址: 1.加压文件,安装oracle客户端 打开安装包,找到setup.exe,开始安装。报错,具体原因和解决办法和安装oracle服务端方法一样。只是要多修改一个文件,在两个文件里添加同样的内容即可。 解决办法很简单,这是因为版本注册问题,默认oracle 11没有添加win10的注册信息,所以要讲win10的注册信息添加到oracle的配置文件里。打开oracle安装包,找到stage文件夹,找到cvu_prereq.xml文件,用记事本打开可以看到如下内容,在标签最后添加如下红色部分。

上面报错信息修改完成以后,重新setup.ext,下面界面选择“管理员”模式 安装以后在network\ADMIN文件夹中配置tnsnames.ora文件,如图:

如果client文件夹中没有network文件夹,说明安装client时安装类型没选对,这时也可以从instantclient包中,把network文件夹拷入client的目录下。 此时,基础环境已经配置完毕。 二:安装plsqldevlop 安装完毕后,不要输入账号密码先进入工具 点tools—preferences—输入client端的目录地址和oci.dll文件的地址 三:配置系统环境 右击我的电脑—属性—高级系统设置—环境变量 编辑Path,添加client端地址

PLSQL Developer连虚拟机Linux下的Oracle

一、工作环境 1,本地机器操作系统为windows 7; 2,虚拟机为VM ware; 3,虚拟机操作系统为Linux,系统上已安装Oracle,并有一个实例(orcl) 二、所需工具 1,PL/SQL Developer; 2,VNC-Viewer; 3,XManager Enterprise; 三、具体步骤 1,测试本地机器与虚拟机之间的网络通畅 2,关闭Linux的防火墙 1)在linux的输入:vncserver,启动VNC服务 2)双击VNC Viewer软件,输入Linux的IP地址与端口号,点击“Connect”,输入密码连接Linux;

3)在VNC Viewwe程序中右击,选择“Open Terminal”,打开一个terminal,输入命令:setup,如果不是以root用户登录的Linux,在这里需要输入root用户的password,进入如下界面,选择“Firewall Configuration“,移动光标至“Run Tool”,回车。 4)选择“Disabled”,移动光标至“OK”,回车;

5)至此,Linux的防火墙已关闭; 3,启动数据库的监听(Listener)服务 1)先测试是否有Listener,并查看其状态,在VNC Viewer的terminal中输入:lsntctl status,查看Listener 上图显示Linux上已有Listenter 2)若无Listener,则需新建Listener,在VNC Viewer的terminal中输入:netca,新建一个Listener。如下图所示,然后下一步下一步。

plsql远程访问数据库 解决ora12541:TNS无监听程序

本机为win7 32位系统,为了学习oracle,装了个vbox虚拟机,再装了个win7虚拟机,内装oracle 11g(win7如果要装10g,要选择vista版本,win版本会安装报错).oracle11g安装完后有报了个错误,当时没注意,现在也忘了什么错了,但是不影响使用.后来想在本机安装plsql来远程连接虚win7上的oracle.查了一些资料,步骤如下: 1.下载plsql,安装. 2.下载Instant Client,点击下载,下载第一个basic就行了,下载完解压缩,以放到主win7 d盘根目录为 例:d:\instantclient_11_2 3.在d:\instantclient_11_2新建tnsnames.ora,用记事本编辑. 4.到虚win7上的oracle安装目录找到…\app\admin\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora,打开,比如数据库实例是orcl,找到如下代码,拷贝到本机d:\instantclient_11_2\tnsnames.ora里 ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 虚拟机IP)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) 5.添加一个环境变量,名为TNS_ADMIN,值为tnsnames.ora文件所在路径d:\instantclient_11_2\tnsnames.ora,plsql通过这个找到orcl连接字符串 6.添加一个环境变量NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK 7.打开PLSQL,不用登陆,工具-首选项-ORACLE-连接: 勾选检查连接 Oracle主目录: d:\instantclient_11_2 OCI库: d:\instantclient_11_2\oci.dll 经过以上几步之后,重启PLSQL,问题来了,报错:ora-12541:TNS:无监听程序. ping是可以ping得通的,虚win7上的监听也开着.经过不懈的努力,多次试验终于解决了: 1.虚拟机网络选择桥接,并在虚拟机内网络连接IPV4设置静态IP IP地址:192.168.1.111 (111可修改成自己的 1-255) 子网掩码:255.255.255.0 默认风头:192.168.1.1 首选DNS服务器:192.168.1.1 修改完记得主win7上 ping 192.168.1.111 ping得通再继续往后.

oracle存储过程讲解及实例

存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR REPLACE PROCEDURE 是一个SQL语句通知Oracle数据库去创建一个叫做skeleton存储过程, 如果存在就覆盖它; 行2: IS关键词表明后面将跟随一个PL/SQL体。 行3: BEGIN关键词表明PL/SQL体的开始。 行4: NULL PL/SQL语句表明什么事都不做,这句不能删去,因为PL/SQL体中至少需要有一句; 行5: END关键词表明PL/SQL体的结束

存储过程创建语法: create or replace procedure 存储过程名(param1 in type,param2 out type) as 变量1 类型(值范围); --vs_msg VARCHAR2(4000); 变量2 类型(值范围); Begin Select count(*) into 变量1 from 表A where列名 =param1; If (判断条件) then Select 列名into 变量2 from 表A where列名 =param1; Dbms_output。Put_line(‘打印信息’); Elsif (判断条件) then Dbms_output。Put_line(‘打印信息’); Else Raise 异常名(NO_DATA_FOUND); End if; Exception When others then Rollback;

End; 注意事项: 1,存储过程参数不带取值范围,in表示传入,out表示输出 类型可以使用任意Oracle中的合法类型。 2,变量带取值范围,后面接分号 3,在判断语句前最好先用count(*)函数判断是否存在该条操作记录 4,用select 。。。into。。。给变量赋值 5,在代码中抛异常用 raise+异常名 CREATE OR REPLACE PROCEDURE存储过程名 ( --定义参数 is_ym IN CHAR(6) ,

用PLSQL远程连接Oracle数据库

PL/SQL Developer 远程连接Oracle数据库 1、配置服务器tnsnames.ora文件,如果本机上没有安装oracle,可以从安 装了oracle的机上拷贝一个(tnsnames.ora文件)放在指定目录下,因为我已安装oracle,所以直接配置该文件。 # tnsnames.ora Network Configuration File: D:\Oracle11g\product\11.2.0\dbhome_1\network\admin\tnsnames.ora # Generated by Oracle configuration tools. LISTENER_ORCL = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) ORACLR_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) (CONNECT_DATA = (SID = CLRExtProc) (PRESENTATION = RO) ) ) ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.25.224)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) orcl为远程Oracle数据库的实例名,IP地址和端口也要配置正确。 2、配置完成后,Oracle客户端应该可以连接到远程Oracle 数据库上。

oracle实验--存储过程

实验八存储过程的使用 一、实验目的 1、熟练掌握存储过程的定义及使用 二、实验要求 1、实验前做好上机实验的准备,针对实验内容,认真复习与本次实验有关的知识,完成 实验内容的预习准备工作; 2、能认真独立完成实验内容; 3、实验后做好实验总结,根据实验情况完成实验报告。 三、实验内容 创建图书管理库的图书、读者和借阅三个基本表的表结构: 图书表: BOOK ( BOOK_ID NUMBER(10), SORT V ARCHAR2(10), BOOK_NAME V ARCHAR2(50), WRITER V ARCHAR2(10), OUTPUT V ARCHAR2(50), PRICE NUMBER(3)); 读者表 READER ( READER_ID NUMBER(3), COMPANY V ARCHAR2(10), NAME V ARCHAR2(10), SEX V ARCHAR2(2), GRADE V ARCHAR2(10), ADDR V ARCHAR2(50)); 借阅表 BORROW ( READER_ID NUMBER(3),

BOOK_ID NUMBER(10), BORROW_DA TE DA TE); 插入数据: BOOK表: insert into book values(445501,'TP3/12','数据库导论','王强','科学出版社',17.90); insert into book values(445502,'TP3/12','数据库导论','王强','科学出版社',17.90); insert into book values(445503,'TP3/12','数据库导论','王强','科学出版社',17.90); insert into book values(332211,'TP5/10','计算机基础','李伟','高等教育出版社',18.00); insert into book values(112266,'TP3/12','FoxBASE','张三','电子工业出版社',23.60); insert into book values(665544,'TS7/21','高等数学','刘明','高等教育出版社',20.00); insert into book values(114455,'TR9/12','线性代数','孙业','北京大学出版社',20.80); insert into book values(113388,'TR7/90','大学英语','胡玲','清华大学出版社',12.50); insert into book values(446601,'TP4/13','数据库基础','马凌云','人民邮电出版社',22.50); insert into book values(446602,'TP4/13','数据库基础','马凌云','人民邮电出版社',22.50); insert into book values(446603,'TP4/13','数据库基础','马凌云','人民邮电出版社',22.50); insert into book values(449901,'TP4/14','FoxPro大全','周虹','科学出版社',32.70); insert into book values(449902,'TP4/14','FoxPro大全','周虹','科学出版社',32.70); insert into book values(118801,'TP4/15','计算机网络','黄力钧','高等教育出版社',21.80); insert into book values(118802,'TP4/15','计算机网络','黄力钧','高等教育出版社',21.80); READER表: insert into reader values(111,'信息系','王维利','女','教授','1号楼424'); insert into reader values(112,'财会系','李立','男','副教授','2号楼316'); insert into reader values(113,'经济系','张三','男','讲师','3号楼105'); insert into reader values(114,'信息系','周华发','男','讲师','1号楼316'); insert into reader values(115,'信息系','赵正义','男','工程师','1号楼224'); insert into reader values(116,'信息系','李明','男','副教授','1号楼318'); insert into reader values(117,'计算机系','李小峰','男','助教','1号楼214'); insert into reader values(118,'计算机系','许鹏飞','男','助工','1号楼216'); insert into reader values(119,'计算机系','刘大龙','男','教授','1号楼318'); insert into reader values(120,'国际贸易','李雪','男','副教授','4号楼506'); insert into reader values(121,'国际贸易','李爽','女','讲师','4号楼510'); insert into reader values(122,'国际贸易','王纯','女','讲师','4号楼512'); insert into reader values(123,'财会系','沈小霞','女','助教','2号楼202'); insert into reader values(124,'财会系','朱海','男','讲师','2号楼210'); insert into reader values(125,'财会系','马英明','男','副教授','2号楼212'); BORROW表:

Oracle数据库远程连接设置的四种方法

Oracle数据库远程连接设置的四种方法 Oracle数据库的远程连接可以通过多种方式来实现,本文我们主要介绍四种远程连接的方法和注意事项,并通过示例来说明,接下来我们就开始介绍。 第一种情况: 若oracle服务器装在本机上,那就不多说了,连接只是用户名和密码的问题了。不过要注意环境变 量%ORACLE_HOME%/network/admin/是否设置。 第二种情况: 本机未安装oracle服务器,也未安装oracle客户端。但是安装了pl sql development、toad sql development、sql navigator等管理数据库的工具。在虚拟机或者另一台电脑上安装了oracle服务器,也就是虚拟机或者另一台电脑此时作为服务器。 这种情况下,本人以pl sql development远程连接ORACLE服务端数据库为例: 1、在安装oracle服务器的机器上搜索下列文件: ?oci.dll ?ocijdbc10.dll ?ociw32.dll ?orannzsbb10.dll ?oraocci10.dll ?oraociei10.dll ?sqlnet.ora ?tnsnames.ora ?classes12.jar ?ojdbc14.jar 把这些找到的文件复制放到一个文件夹,如 oraclient,将此文件夹复制到客户端机器上。如放置路径为 D:oraclient。 2、配置tnsnames.ora,修改其中的数据库连接串。 1.oracledata = 2. 3.(DESCRIPTION = 4. 5.(ADDRESS_LIST = 6. 7.(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.58)(PORT = 1521)) 8. 9.(CONNECT_DATA =

oracle存储过程例子

oracle存储过程学习过程 一直没有使用过存储过程 今天特意学习一下oracle的存储过程 一步一步学习,今天学习如下: 建立一个最简单的存储过程 create or replace procedure test_xg_p1 is begin dbms_output.put_line('hello world! this is the first procedure'); end; 建立一个带输入输出参数的存储过程:把输入的数据传给输出参数 create or replace procedure test_xg_p2(a in number,x out number) is begin x:=a; end test_xg_p2; 建立一个逻辑判断的存储过程,并包含输入输出参数:近似分数的登记判断create or replace procedure test_xg_p3(a in number,x out varchar2) is begin if a>=90 then begin x := 'A'; end; end if; if a<90 then begin x:='B'; end; end if; if a<80 then begin x:='C'; end; end if; if a<70 then begin x:='D'; end; end if; if a<60 then begin x:='E'; end; end if; end test_xg_p3; 建立一个带循环逻辑的存储过程:近似累加函数

create or replace procedure test_xg_p4(a in number,x out varchar2) is tempresult number(16); begin tempresult :=0; for tempa in 0..a loop begin tempresult := tempresult + tempa; end; end loop; x:=tempresult; end test_xg_p4; 建立一个能从数据库中特定表中返回数据的存储过程: create or replace procedure test_xg_p5(x out varchar2) is tempresult varchar2(1024); begin tempresult := 'start->'; select hotelid||hotelname into tempresult from hotel where hotelid =10041764; x:=tempresult; end test_xg_p5; 建立一个能使用游标的带循环的存储过程: create or replace procedure test_xg_p6(x out varchar2) is tempresult varchar2(10240); cursor cursor1 is select * from hotel where hotelname like '浙江%'; begin tempresult := 'start->'; for cursor_result in cursor1 loop begin tempresult :=tempresult||cursor_result.hotelid||cursor_result.hotelname; end; end loop; x:=tempresult; end test_xg_p6;

PLSQL连接oracle数据库配置

PLSQL连接oracle数据库配置 方法一: 1)点击Net Configuration Assistant 2) 在弹出的对话框中选择本地Net服务名配置,点下一步 3)在服务名配置对话框中选择添加,点下一步 4)在如下对话框中填写要访问的oralce数据库的服务名,该服务名可以通过oralce登录用户名进入环境,在.cshrc中,环境变量ORACLE_SID对应的值便是这个服务名,也可以在oracle用户环境下执行grep | env ORACLE_SID查找。 点击下一步 5)选择TCP协议,点下一步 6)主机名中填写要访问的oracle数据库服务器,使用标准端口号1521,点下一步 7)选中“是,进行测试”,点下一步 8) 点更改登录,填写要访问的数据库用户名和密码,确保其正确。此处主要是验证前面配置是否正确,如正确这里的测试就可以成功。 如果不正确请检查服务名、ip地址、用户名、密码中是否有写错,并改之,就可以成功了。 测试成功后点下一步 9)在下图中填写网络服务名,此处的网络服务名可以随意取名,点下一步,后面配置数据源的时候用的就是这个网络服务名 方法一用起来有点小复杂,不过可以了解数据库的配置步骤,方法二相对来说简单很多 找到本机oracle数据库安装的如下路径,如: F:\app\Administrator\product\11.1.0\client_1\network\admin,在该路径下有个文件tnsnames.ora,打开文件会发现里面有很多连接配置,直接拷贝一个修改如下红色字 SYSDB_102 = //对应的就是上面方法一提到的网络服务名 (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.41.24.102)(PORT = 1521)) //访问数据库的ip

PLSQL Developer连接64位Oracle客户端设置

PLSQL Developer连接64位Oracle客户端设置 在64位操作系统机器上安装Oracle客户端和PL/SQL Developer成功后,使用PL/SQL Developer登录却不能成功,有如下提示: 其原因是PL/SQL Developer不能直接连接64位Oracle客户端,要解决该问题,需要进行如下设置: 安装Oracle64位客户端(本人安装的是10204_vista_w2k8_x64_production_client.zip),安装PL/SQL Developer(本人安装的是plsqldev804),具体安装步骤不在此具体说明。 配置PLSQL Developer: 第一步:下载instantclient-basic-win32-11.2.0.1.0.zip(其实是轻量级32位客户端,不需要安装),并将其解压放在Oracle客户端安装目录下,如下图: 注意:Oracle8i、Oracle9i客户端对应下载instantclient-basic-win32-10.x.x.x.x.zip,Oracle9i 以上版本需要下载instantclient-basic-win32-11.x.x.x.x.zip,否则运行PL/SQL Developer时会出现找不到部分文件的错误提示。 第二步:双击运行PL/SQL Developer,取消登录,直接进入主界面,在主界面中选择【工具】→【首选项(P)…】→【连接】,在该界面中填写Oracle主目录名为之前下载并放置的instantclient 所在路径,例如D:\oracle\instantclient_11_2,填写OCI库内容为instantclient文件夹下oci.dll 文件所在的路径,如:D:\oracle\instantclient_11_2\oci.dll。

Oracle存储过程基本语法

Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR REPLACE PROCEDURE 是一个SQL语句通知Oracl e数据库去创建一个叫做skeleton存储过程, 如果存在就覆盖它;行2: IS关键词表明后面将跟随一个PL/SQL体。 行3: BEGIN关键词表明PL/SQL体的开始。 行4:

NULL PL/SQL语句表明什么事都不做,这句不能删去,因为PL /SQL体中至少需要有一句; 行5: END关键词表明PL/SQL体的结束 存储过程创建语法: create or replace procedure 存储过程名(param1 in t ype,param2 out type) as 变量1 类型(值范围); --vs_msg VARCHAR2(4000); 变量2 类型(值范围); Begin Select count(*) into 变量1 from 表A where列名=param1; If (判断条件) then Select 列名into 变量2 from 表A where 列名=param1; Dbms_output。Put_line(‘打印信息’);

Elsif (判断条件) then Dbms_output。Put_line(‘打印信息’); Else Raise 异常名(NO_DATA_FOUND); End if; Exception When others then Rollback; End; 注意事项: 1,存储过程参数不带取值范围,in表示传入,out表示输出类型可以使用任意Oracle中的合法类型。 2,变量带取值范围,后面接分号

oracle存储过程函数汇总().docx

oracle存储过程函数汇总() Character function return character value These functions all received is the character parameter type group (except CHR) and returns the character value? In addition to the special instructions, the function returns VARCHAR2 most numerical types? The restrictions on the return type of the character function are the same as those for the basic database type? The maximum value of character variable storage: The VARCHAR2 value is limited to 2000 characters (ORACLE 8 to 4000 characters) The CHAR value is limited to 255 characters (0RACLE8 2000) The long type is 2GB The Clob type is 4GB 1,CHR Syntax: Chr (x) Function: return in the database character set with numerical equivalence with the character of X. CHR and ASCII are a pair of inverse functions? After CHR conversion character after ASCII conversion and obtained the original word

Oracle存储过程基本结构

1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字 ( 参数1 IN NUMBER, 参数2 IN NUMBER ) IS 变量1 INTEGER :=0; 变量2 DATE; BEGIN END 存储过程名字 2.SELECT INTO STATEMENT 将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条 记录,否则抛出异常(如果没有记录抛出NO_DATA_FOUND) 例子: BEGIN

SELECT col1,col2 into 变量1,变量2 FROM typestruct wher e xxx; EXCEPTION WHEN NO_DATA_FOUND THEN xxxx; END; ... 3.IF 判断 IF V_TEST=1 THEN BEGIN do something END; END IF; 4.while 循环 WHILE V_TEST=1 LOOP BEGIN

XXXX END; END LOOP; 5.变量赋值 V_TEST := 123; 6.用for in 使用cursor ... IS CURSOR cur IS SELECT * FROM xxx; BEGIN FOR cur_result in cur LOOP BEGIN V_SUM :=cur_result.列名1+cur_result.列名2 END; END LOOP;

END; 7.带参数的cursor CURSOR C_USER(C_ID NUMBER) IS SELECT NAME FROM USER WHE RE TYPEID=C_ID; OPEN C_USER(变量值); LOOP FETCH C_USER INTO V_NAME; EXIT FETCH C_USER%NOTFOUND; do something END LOOP; CLOSE C_USER; 8.用pl/sql developer debug 连接数据库后建立一个Test WINDOW 在窗口输入调用SP的代码,F9开始debug,CTRL+N单步调试 关于oracle存储过程的若干问题备忘 1.在oracle中,数据表别名不能加as,如:

Oracle+PlSql存储过程

Oracl e 存储过程 目录 Oracle 存储过程 (1) Oracle存储过程基础知识 (1) Oracle存储过程的基本语法 (2) 关于Oracle存储过程的若干问题备忘 (4) 1. 在Oracle中,数据表别名不能加as。 (4) 2. 在存储过程中,select某一字段时,后面必须紧跟into,如果select整个记录,利 用游标的话就另当别论了。 (5) 3. 在利用select...into...语法时,必须先确保数据库中有该条记录,否则会报出"no data found"异常。 (5) 4. 在存储过程中,别名不能和字段名称相同,否则虽然编译可以通过,但在运行阶段 会报错 (5) 5. 在存储过程中,关于出现null的问题 (5) 6. Hibernate调用Oracle存储过程 (6) 用Java调用Oracle存储过程总结 (6) 一、无返回值的存储过程 (6) 二、有返回值的存储过程(非列表) (8) 三、返回列表 (9) 在存储过程中做简单动态查询 (11) 一、本地动态SQL (12) 二、使用DBMS_SQL包 (13) Oracle存储过程调用Java方法 (16) Oracle高效分页存储过程实例 (17) Oracle存储过程基础知识 商业规则和业务逻辑可以通过程序存储在Oracle中,这个程序就是存储过程。 存储过程是SQL, PL/SQL, Java 语句的组合,它使你能将执行商业规则的代码从你的应用程序中移动到数据库。这样的结果就是,代码存储一次但是能够被多个程序使用。 要创建一个过程对象(procedural object),必须有CREATE PROCEDURE 系统权限。如果这个过程对象需要被其他的用户schema 使用,那么你必须有CREATE ANY PROCEDURE 权限。执行procedure 的时候,可能需要excute权限。或者EXCUTE ANY PROCEDURE 权限。如果单独赋予权限,如下例所示: grant execute on MY_PROCEDURE to Jelly 调用一个存储过程的例子: execute MY_PROCEDURE( 'ONE PARAMETER'); 存储过程(PROCEDURE)和函数(FUNCTION)的区别。

PLSQL使用方法

1.1PLSQl远程连接oracle数据库 1.1.1配置tnsnames.ora 路径:X:\XXX\PLSQL Developer 9.0.0.1601\orcl_client\tnsnames.ora tnsnames.ora配置: orcl = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521)) ) (CONNECT_DATA = (SID = orcl) ) ) 其中HOST为主机IP地址,红色字体处 PORT为oracle开放端口号 SERVICE_NAME为连接数据库名字,蓝色字体处 *此配置参数可以配置多个,也就是可以配置多个连接字符串(全局名称) 1.1.2添加连接环境变量 变量名:TNS_ADMIN 变量值:X:\XXX\PLSQL Developer 9.0.0.1601\orcl_client 1.1.3添加ORACLE的语言环境变量: 变量名:NLS_LANG 变量值:AMERICAN_AMERICA.ZHS16GBK(设置ORACLE的语言) 重新连接,即可正常显示中文。 如果想转换为UTF8字符集,可以赋予"NLS_LANG"为"AMERICAN_AMERICA.UTF8",其他编码同上

1.1.4下载并安装PL.SQL.Developer,配置应用: 配置tools->preferences->connection PLSQL 设置 Oracle Home=X:\XXX\PLSQL Developer 9.0.0.1601\orcl_client OCI library=X:\XXX\PLSQL Developer 9.0.0.1601\orcl_client\oci.dll 1.1.5重启plsql 再次打开plsql则会在database中有oracledata选项输入用户名密码就可以登陆。 1.2导入基础数据 1.2.1输入用户名密码登录plsql

oracle存储过程的详细列子说明加分析

文章分类:数据库存储过程创建语法: (1)无参 create or replace procedure 存储过程名as 变量1类型(值范围); 变量2类型(值范围); Begin Excepti on End; (2)带参 create or replace procedure 存储过程名(param1 in type,param2 out type)as 变量1类型(值范围); 变量2类型(值范围); Begin Select count(*) into 变量1 from 表A where 列名=param1 ; If (判断条件)then Select 列名into 变量2 from 表A where 列名=param1; Dbms_output.Put_line(打印信息'); Elseif (判断条件)then Dbms_output.Put_line(打印信息'); Else Raise 异常名(NO DATA FOUND); End if; Excepti on When others the n Rollback; End; 注意事项: 1,存储过程参数不带取值范围,in表示传入,out表示输出

2, 变量带取值范围,后面接分号 3, 在判断语句前最好先用count ( *)函数判断是否存在该条操作记录 4, 用select。。。into。。。给变量赋值 5,在代码中抛异常用raise+异常名 以命名的异常 命名的系统异常产生原因 ACCESS INTO NULL 未定义对象 CASE_NOT_FOUND CASE中若未包含相应的WHEN,并且没有设置 ELSE 时 COLLECTION_IS_NULL 集合元素未初始化 CURSER ALREADY OPEN 游标已经打开 DUP VAL ON INDEX 唯一索引对应的列上有重复的值 INVALID_CURSOR 在不合法的游标上进行操作 INVALID_NUMBER 内嵌的SQL语句不能将字符转换为数字 NO_DATA_FOUND 使用select into未返回行,或应用索引表未初始化的 TOO MANY ROWS 执行select into时,结果集超过一行ZERO_DIVIDE 除数为0 SUBSCRIPT_BEYOND_COUNT 元素下标超过嵌套表或VARRAY的最大值

plsql远程连接服务器问题

pl/sql远程连接orcle服务器问题 可能的问题: 1、windows的防火墙所致 2、环境变量PATH里没有加上%ORACLE_HOME%\bin导致 引用一个别人的东西吧。我也不太清楚: ORACLE 连接设置方法很多,这里写四种,但主要是远程连接方法。 第一种情况: 若oracle服务器装在本机上,那就不多说了,连接只是用户名和密码的问题了。不过要注意环境变量%ORACLE_HOME%/network/admin/是否设置。 第二种情况: 本机未安装oracle服务器,也未安装oracle客户端。但是安装了pl sql development、toad sql development、sql navigator等管理数据库的工具。在虚拟机或者另一台电脑上安装了oracle服务器,也就是虚拟机或者另一台电脑此时作为服务器。 这种情况下,本人以pl sql development远程连接ORACLE服务端数据库为例: 1、在安装oracle服务器的机器上搜索下列文件, oci.dll ocijdbc10.dll(其中10代表oracle版本,若是其他版本,则需要修改之,例如改成ocijdbc9.dll或者ocijdbc11.dll) ociw32.dll orannzsbb10.dll(其中10代表oracle服务器版本,若是其他版本,则需要修改之,例如改成orannzsbb9.dll或者orannzsbb11.dll)

oraocci10.dll(其中10代表oracle服务器版本,若是其他版本,则需要修改之,例如改成oraocci9.dll或者oraocci11.dll) oraociei10.dll(可能服务器没有,如果没有,就不用找了) sqlnet.ora tnsnames.ora classes12.jar ojdbc14.jar 把这些找到的文件复制放到一个文件夹,如oraclient,将此文件夹复制到客户端机器上。如放置路径为D:\oraclient 2、配置tnsnames.ora,修改其中的数据库连接串。 oracledata = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.58)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = oracledata) ) ) 其中,oracledata是要连接的服务名;HOST = 192.168.0.58,是服务器IP地址;PORT = 1521是端口号。 3、添加第一个环境变量,名为TNS_ADMIN,值为tnsnames.ora文件所在路径(如:D:\oraclient,特别是重装后或其它操作,忘了TNS_ADMIN 变量,plsql登陆就会报无法解析指定的连接标识符),这是为了能够找到上面说的tnsnames.ora。这步是最重要的。

plsql不安装oracle客户端 进行远程连接

plsql 可不可以直接远程连接服务器?都说要安装客户端,记得以前用过个什么sql deveplore 什么的工具,不用安装客户端的,而且是绿色软件来的,我就想,一定就办法,不用这么麻烦安装客户端的。上网找了找,下面把我的实践详细过程记录下来,希望对大家有帮助,有什么不对的,请大家多多评论,指出来。 1、在安装ORACLE服务器的机器上搜索下列文件, oci.dll ocijdbc10.dll ociw32.dll orannzsbb10.dll oraocci10.dll oraociei10.dll (可能服务器没有,如果没有则pl sql 随便用户名密码可以登陆) sqlnet.ora tnsnames.ora classes12.jar ojdbc14.jar 放到一个文件夹,如oraclient 2、配置tnsnames.ora,如果本机上没有安装oracle,可以从安装了oracle的机上拷贝一个(tnsnames.ora文件在%ORACLE_HOME%\network\admin下)放在上面的目录D:\oraclient下。oracledata = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.58)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = oracledata) ) ) 3、添加一个环境变量,名为TNS_ADMIN,值为tnsnames.ora文件所在路径(如:D:\oraclient,特别是重装后或其它操作,忘了TNS_ADMIN变量,plsql登陆就会报无法解析指定的连接标识符),这是为了能够找到上面说的tnsnames.ora。如果本机上安装了ORACLE,并且设置了ORACLE_HOME环境变量,那么会自动在%ORACLE_HOME%/network/admin/位置查找tnsnames.ora文件。 4、设置ORACLE的语言,添加环境变量: “NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK”,(AMERICAN_https://www.360docs.net/doc/e25876746.html,7ASCII 是ASCII编码类型,其它类型可自己到服务器看一下或网上查找一下) (本步骤暂时要做对,如果编码不对,会产生乱码) 5、下载并安装PL.SQL.Developer配置应用 配置tools->preferences->connection Oracle Home=D:\oracleclient OCI library=D:\oracleclient\oci.dll 6、再次打开plsql则会在database中有oracledata 选项输入用户名密码就可以登陆。

相关文档
最新文档