一、什么是pl/sql
pl/sql(procedural language/sql)是Oracle在标准的sql语言上的扩展,pl/sql不仅允许嵌入Sql语言,还可以定义变量和常量,允许使用条件语句和循环语句,允许使用例外处理各种错误,这样使得它的功能变得更加强大。
二、pl/sql学习的必要性
1、提高应用程序的运行性能。
2、模块化的设计思想。
3、减少网络传输量。
4、提高安全性。
三、编写规范
单行注释--
sql&select * from emp where empno=7788; --取得员工信息
/*....................*/
2、标识符号的命名规范
(1)当定义变量时,建议用v_作为前缀 v_sal。
(2)当定义常量时,建议用c_作为前缀 c_rate。
(3)当定义游标时,建议用_cursor作为后缀emp_cursor。
(4)当定义例外时,建议用e_作为前缀 e_error。
块(block)是pl/sql的基本程序单元,编写pl/sql程序实际上 就是编写pl/sql块。要完成相对简单的应用功能,可能只需要编写一个pl/sql快;但是如果想要实现复杂的功能,可能需要在一个pl/sql块中嵌套其他的pl/sql快。
1、块结构示意图
pl/sql块由三个部分构成:定义部分、执行部分、例外处理部分。
declear:定义部分是从declare开始的,这部分是可选的。定义常量、变量、游标例外、复杂数据类型。
begin:执行部分是从begin开始的,这部分是必须的。
exception:例外处理部分是exception开始的,该部分可选的。
A、包含定义部分和执行部分的pl/sql块
v_ename varchar2(5);
--定义字符串变量
select ename int o v_ename from emp where empno=&
dbms_output.put_line('雇员名:' || v_ename);
相关说明:
& 表示要接收从控制台输入的变量
B、包含定义部分、执行部分和例外处理部分
为了避免pl/sql程序的运行错误,提高pl/sql的健壮性,应该对可能的错误今夕处理,这个很有必要。
v_ename varchar2(5);
--定义字符串变量
select ename int o v_ename from emp where empno=&
dbms_output.put_line('雇员名:' || v_ename);
when no_data_found then
dbms_output.put_line('输入有误');
过程用于执行特定的操作,当建立过程时,即可以指定输入参数(in),也可以指定输出参数(out),通过在过程中使用输入参数,可以将数据传递到执行部分,通过使用输出参数,可以将执行部分的数据传递到应用环境。在sqlplus中可以使用create procedure命令来建立过程。
请考虑编写一个过程,可以输入雇员们,新工资,可修改雇员的工资。
create procedure Update_Sal(spName varchar2,new sal number) is
update emp set sal = newSal where ename = spN
如何调用过程有两种方法:
A、exec Update_Sa('Scott',4678);
B、call Update_Sal'Scott',4567);
函数用于返回特定的数据,当建立函数时,在函数头部必须包含return子句,而在函数体内必须包含return语句返回的数据,我们可以使用create function 来建立函数。
create function annual_income(name varchar2)
return numeber is annual_salary number(7,2);
select sal*12+nvl(comm,0)*12 into annual_salary from emp where ename=
return annual_
在sqlplus中调用函数
sql&var income number
sql&call annual_income('SCOTT') into:
包用于在逻辑上组合过程和函数,它由包规范和包体两部分组成
1、我们可以使用create package命令来创建包。
create package sp_package as
procedure update_sal(name varchar2,new sal number);
function annual_income(name varchar2)
包的规范只包含了过程和函数的说明,但是没有过程和函数的实现代码。包体用于实现包规范中的过程和函数。
2、建立包体可以使用create package body命令
create package body sp_package as
procedure Update_Sal(spName varchar2,new sal number) is
update emp set sal = newSal where ename = spN
function annual_income(name varchar2)
return numeber is annual_salary number(7,2);
select sal*12+nvl(comm,0)*12 into annual_salary from emp where ename=
return annual_
3、如何调用包的过程或是函数
当调用包的过程或是函数时,在过程和函数前需要带有包名,如果要访问其他方案的包,还需要在包名前加方案名。
sql&call sp_package.update_sal('SCOTT',1500);
八、定义并使用变量
概述:在编写pl/sql程序时,可以定义变量和常量。在pl/sql程序中包括有标量类型(scalar)、复合类型(composite)、参照类型(references)、lob(large object)。
1、标量(scalar)
在编写pl/sql块时,如果要使用变量,需要在定义部分定义变量。
pl/sql中定义变量和常量的语法如下:
identifier [constant] datatype [not null] [:=| default expr]
identifier:名称
constant:指定常量。需要指定它的初始值,其其值是不能改变的。
datatype:数据类型
not null:指定变量值不能为NULL
:=:给变量或是常量指定初始值
default:用于指定初始值
expr:指定初始值pl/sql表达式,可是文本值、其他变量、函数等。
标量定义的案例
(1)定义一个变长字符串
v_ename varchar2(10);
(2)定义一个小数,范围-99.99
v_sal number(6,2);
(3)定义一个小数并给一个初始值为5.4 :=是pl/sql的赋值号
v_sal2 number(6,2):=5.3;
(4)定义一个日期类型的数据
(5)定义一个布尔变量,不能为空,初始值为false
v_valid boolean no
A、使用标量
在定义好变量后,就可以使用这些变量。这里需要 说明的是pl/sql块为变量赋值不同于其他的编程语言,需要在等号前面加冒号(:=)。
下面以输入员工号,显示雇员姓名、工资、个人所得税(税率为0.03)为例,说明变量的使用,看看如何编写。
c_tax_rate number(3,2):=0.03;
v_ename varchar2(5);
v_sal number(7,2);
v_tax number(7,2);
select ename,sal into v_ename,v_sal from emp where empno=&
v_tax:=v_sal*c_tax_
dbms_output.put_line('姓名是:'||v_ename||' 工资是:'||v_sal||' 所得税是:'||v_tax);
B、使用%type类型
对于上面的pl/sql块有一个问题:
就是如果员工的姓名超过了5字符的话,就会有错误,为了降低pl/sql程序的维护工作量,可以使用%type属性定义变量,这样它会按照数据库列来确定你定义的变量的类型和长度。
语法:标识符名 表名.列名%
c_tax_rate number(3,2):=0.03;
v_ename emp.ename%
v_sal emp.sal%
v_tax number(7,2);
select ename,sal into v_ename,v_sal from emp where empno=&
v_tax:=v_sal*c_tax_
dbms_output.put_line('姓名是:'||v_ename||' 工资是:'||v_sal||' 所得税是:'||v_tax);
2、复合变量(composite)
用于存储多个值的变量。主要包括这几种pl/sql记录、pl/sql表、嵌套表、varray。
1、pl/sql记录
类似于高级语言中的结构体,需要注意的是,当引用pl/sql记录成员时,必须要加记录变量作为前缀(记录变量.记录成员)。
type emp_record_type is record(name emp.ename%type, salary emp.sal%type,title emp.job%type);
sp_record emp_record_
select ename,sal,job into sp_record from emp where empno=7788;
dbms_output.put_line('员工名:'||sp_record.name);
2、pl/sql表
相当于高级语言中的数组,但是需要注意的是在高级语言中数组的下标不能为负数,而pl/sql是可以为负数的,并且表元素的下标没有限制。
type sp_table_type is table of emp.ename%type index by binary_
sp_table sp_table_
select ename into sp_table(0) from emp where empno=7788;
dbms_output.put_line('员工名:'||sp_table(0));
sp_table_type:是pl/sql表类型
emp.ename%type:指定了表的元素的类型和长度
sp_table:是pl/sql表变量
sp_table(0):表示下标为0的元素
3、参照变量
概述:参照变量是指用于存放数值指针的变量,通过使用参照变量,可以使得应用程序共享相同对象,从而降低占用空间。在编写pl/sql程序时,可以使用游标变量(ref cursor)和对象类型变量(ref obj_type)两种参照变量类型。
1、游标变量(ref cursor)
使用游标时,当定义游标时不需要指定相应的select语句,但是当使用游标时(open时)需要指定select语句,这样一个游标就与一个select 语句结合了。
请使用pl/sql编写一个块,可以输入部门号,并显示该部门所有员工姓名和他的工资
type sp_emp_
test_cursor sp_emp_
v_ename emp.ename%
v_sal emp.sal%type
opent test_cursor for select ename,sal from emp where deptno=&
fetch test_cursor into v_ename,v_
exit when test_cursor%notfound
dbms_output.putline('姓名:'||v_ename||' 工资:'||v_sal);
close test_
九、控制结构
概述:在任何计算机语言(C、Java、Pascal)都有各种控制语句(条件语句、循环结构、顺序控制结构),在pl/sql中也存在这样的控制结构。
1、条件分支语句
pl/sql中提供了三种条件分支语句。if-then、if-then-else、if-then-elsif-else。
(1)简单的条件判断if-then
案例:编写一个过程,可以输入一个雇员名,如果该雇员的工资低于2000,就给该雇员工资增加10%。
create procedure IncreaseSal(spName varchar2) is
v_sal emp.sal%
select sal into v_sal from emp where ename=spN
if v_sal&2000 then
update emp sal=sal+sal*10% where ename=spN
(2)二重条件分支if-then-else
案例:编写一个过程,可以输入一个雇员名,如果该雇员的补助不是0,就在原来的基础上增加100;如果补助为0就把补助设为200。
create procedure IncreaseComm(spName varchar2) is
select comm into v_comm from emp where ename=spN
if v_comm&&0 then
update emp set comm=comm+100 where ename=spN
update emp set comm=200 where ename=spN
(3)多重条件分支if-then-elsif-else
案例:编写一个过程,可以输入一个雇员编号,如果该雇员的职位是PRESIDENT就给他的工资增加1000,如果该雇员的职位是MANAGER就给他的工资增加500,其他职位的雇员工资增加200。
create procedure IncreaseSal(spNo number) is
v_job emp.job%
select job into v_job from emp where empno=spNo;
if v_job='PRESIDENT' then
update emp set sal=sal+1000 where empno=spNo;
elsif v_job='MANAGER'
update emp set sal=sal+500 where empno=spNo;
update emp set sal=sal+200 where empno=spNo;
2、循环语句
(1)基本循环
loop是pl/sql中最简单的循环语句,这种循环语句以loop开头,以end loop结尾,这种循环至少会被执行一次。
案例:编写一个过程,可输入用户名,并循环添加10个用户到Users表中,用户编号从1开始增加。
create procedure AddUser(spName varchar2) is
v_num number(2):=1;
insert into Users values(v_num,spName);
exit when v_num=10;
v_num:=v_num+1;
(2)While循环
基本循环至少要执行循环体一次,而对于while循环来说,只有条件为true时,才会执行循环体语句,while循环以while 条件 loop开始,以end loop结束。
编写一个过程,可输入用户名,并循环添加10个用户到Users表中,用户编号从11开始增加
create procedure AddUser(spName varchar2) is
v_num number(3):=11;
while v_num&=20 loop
insert into Users values(v_num,spName);
v_num:=v_num+1;
(3)for循环
基本for循环的基本结构如下
for i in reverse 1..10 loop
insert into Users values(i,'Kevin');
3、顺序控制语句
(1)goto语句
goto语句用于跳转到特定标号去执行有车,注意由于使用goto语句会增加程序的复杂度,并使得应用程序可读性变差,所以在一般应用开发时,建议大家不要使用goto语句
基本语法如下:
goto label:其中label是已经定义好的标号名。
i number(4):=1;
dbms_output.put_line("输出i='||i");
if i=10 then
goto end_loop
&&end_loop&&
dbms_output.put_line("循环结束");
null语句不会执行任何操作,并且会直接将控制传递到下一条语句。使用null语句的主要好处是可以提高pl/sql的可读性。
v_sal emp.sal%
select sal into v_sal from emp where ename=spN
if v_sal&2000 then
update emp sal=sal+sal*10% where ename=spN
十、编写分页过程
概述:分页时任何一个网站(bbs、网上商城、Blog)都会使用到的技术,因此学习pl/sql编程开发就一定要掌握该技术。
案例:编写一个过程完成分页。
--创建一个包,存放游标。
create package ListPackage as
type page_
--开始编写分页的过程
create procedure PagedList(
tableName in varchar2,
--要查询的表名
sortColumn in varchar2, --欲排序的列名
pagesize in number,
--每页显示的记录数
currentPage in number, --当前页号
myRowCount out number,
--表中总共的记录数
myPageCount out number, --共有多少页
p_cursor out ListPackage.page_cursor
--游标变量
v_sql varchar2(1000);
v_begin number:=(currentPage-1)*pagesize+1;
v_end number:=currentPage*
v_sql:='select * from(select *, rownum rn from (select * from '||tableName||' order by '||sortColumn||') t1 where rownum&='||v_end||') where rn&='||v_
open p_cursor for v_
--计算myRowCount和myPageCount
v_sql:='select count(*) from '||tableN
execute immediate v_sql into myRowC
if mod(myRowCount,pagesize)=0 then
myPageCount:=myRowCount/
myPageCount:=myRowCount/pagesize+1;
十一、例外处理
1、例外的分类
Oracle将例外分为预定义例外、非预定义例外和自定义例外三种。
预定义例外:用于处理常见的Oracle错误。
非预定义例外:用于处理预定义例外不能处理的例外。
自定义例外:用于处理与Oracle错误无关的其他情况。
2、处理预定义例外
预定义例外时由pl/sql所提供的系统例外。当pl/sql应用程序违反了Oracle规定的限制时,则会隐含的触发一个内部例外。pl/sql为开发人员提供了二十多个预定义例外。我们给大家介绍常用的例外。
(1)预定义例外case_not_found
在开发pl/sql块中编写case语句时,如果在when子句中没有包含必须的条件分支,就会触发case_not_found的例外。
create procedure sp_pro6(spno number) is
v_sal emp.sal%
select sal into v_sal from emp where empno=
when v_sal&1000 then
update emp set sal=sal+100 where empno=
when v_sal&2000 then
update emp set sal=sal+200 where empno=
when case_not_found then
dbms_output.put_line('case语句没有与'||v_sal||'相匹配的条件');
(2)预定义例外cursor_already_open
当从新打开已经打开的游标时,会隐含的触发例外cursor_already_open。
cursor emp_cursor is select ename,
for emp_record1 in emp_cursor loop
dbms_output.put_line(emp_record1.ename);
when cursor_already_open then
dbms_output.put_line('游标已经打开');
(3)预定义例外dup_val_on_index
在唯一索引所对应的列上插入重复的值时,会隐含的触发例外dup_val_on_index例外。
insert into dept values(10.'公关部','北京');
when dup_val_on_index then
dbms_output.put_line('在deptno列上不能出现重复值');
(4)预定义例外invalid_cursor
当试图在不合法的游标上执行操作时,会触发该例外。
例如:视图从没有打开的游标提取数据,或是关闭没有打开的游标。则会触发该例外。
cursor emp_cursor is select ename,
emp_record emp_cursor%
fetch emp_cursor into emp_
dbms_output.put_line(emp_record.ename);
close emp_
when invalid_cursor then
dbms_output.put_line('请检查游标是否打开');
(5)预定义例外invalid_number
当输入的数据有误时,会触发该例外。
案例:数字100写成了1oo就会触发该例外
update emp set sal=sal+'1oo';
when invalid_number then
dbms_output.put_line('输入数字不正确');
(6)预定义例外no_data_found
下面是一个pl/sql块,当执行select into没有返回行,就会触发该例外。
v_sal emp.sal%
select sal into v_sal from emp where ename='&name';
when no_data_found then
dbms_output.put_line('不存在该员工');
(7)预定义例外too_many_rows
当执行select into语句时,如果返回超过了一行,则会触发该例外。
v_ename emp.ename%
select ename into v_
when too_many_rows then
dbms_output.put_line('返回了多行');
(8)预定义例外zero_divide
当执行除0操作时,则会触发给例外。
(9)预定义例外value_error
当在执行赋值操作时,如果变量的长度不足以容纳实际数据,则会触发该例外value_error。
v_ename varchar2(5);
select ename into v_ename from emp where empno=&
dbms_output.put_line(v_ename);
when value_error then
dbms_output.put_line('变量尺寸不足');
(10)其它预定义例外
A、login_denide
当用户非法登录时,会触发该例外。
B、not_logged_on
如果用户没有登录就执行dml操作,就会触发该例外。
C、storage_error
如果超出了内存空间或是内存被损坏,就触发该例外。
D、timeout_on_resourece
如果Oracle在等待资源时,出现超时就触发该例外。
3、非预定义例外
非预定义例外用于处理与预定义例外无关的Oracle错误,使用预定义例外只能处理21个Oracle错误,而当使用pl/sql开发应用程序时,可能会遇到其他的一些Oracle错误。比如在pl/sql快中执行dml语句时,违反了约束规定等等。在这样的情况下,也可以处理Oracle的各种例外。
4、处理自定义例外
预定义例外和非预定义例外都是Oracle错误相关的,并且处在的Oracle错误会隐含的触发相应的例外。而自定义例外与Oracle错误没有任何关联,它是由开发人员为特定情况所定义的例外。
案例:请编写一个pl/sql块,接收一个雇员的编号,并给该雇员工资增加1000元,如果该雇员不存在请提示。
create procedure IncreaseSal(spno number) is
update emp set sal=sal+100 where empno=
if sql%not_found then
when myException then
dbms_output.put_line('没有更新任何用户');
十二、Oracle视图
概述:视图是一个虚拟表,其内容由查询定义,同真实表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在,行和列数据来自有定义视图的查询所引用的表,并且在引用视图时动态生成。
1、视图与表的区别
A、表需要占用磁盘空间,视图不需要。
B、视图不能添加索引。
C、使用视图可以简化复杂查询。
D、视图有利于提高安全性。
2、创建视图
create view 视图名 as select语句[with read only]
3、创建或修改视图
create or replace view 视图名 as select语句[with read only]
4、删除视图
drop view 视图名
阅读(...) 评论()PL/SQL中SELECT总结
(window.slotbydup=window.slotbydup || []).push({
id: '2611110',
container: s,
size: '240,200',
display: 'inlay-fix'
您当前位置: &
[ 所属分类
一、SELECT 语句的各个关键词的顺序及作用简解(这个我简略点写~)1.SELECT2.FROM3.WHERE4.GROUP BY ---对结果集进行分组,通常与聚合函数一起使用5.H***ING6.ORDER BY举个例子如下:select item_name,count(item_name) from lab_item_dict where price='25' group by item_name having count(item_name)&1 order by count(item_name);注意这个顺序。二、SELECT语句基本执行过程详解:当执行SELECT语句时,DBMS的执行步骤可以表示如下: step1:首先执行FROM子句,组装来自不同数据源的数据,及根据FROM子句中的一个或多个表创建工作表。如果在FROM子句中有两个或多个表,DBMS将执行 CROSS JOIN运算对表进行交叉连接,作为工作表。 step2:若果有WHERE子句,实现基于制定的条件对记录进行筛选,即DBMS将WHERE子句列出的搜索条件作用于step1中生成的工作表。DBMS将保留哪些满座搜索条件的行,删除那些不满足条件的行。 step3:若果有GROUP BY子句,它讲把数据划分为多个分组。DBMS将step2生成的结果表中的行分成多个组,每个组中有行的group_by_expression字段具有相同的值。接着,DBMS将每组减少到单行,而后将其添加到新的结果表中,用以代替step1的工作表。 step4:如果有H***ING子句,他将筛选分组。DBMS将H***ING子句列出的搜索条件作用于step3生成的“组合”表中的每一行。DBMS将保留哪些满足搜索条件的行,删除那些不满足条件的行。 step5:将SELECT子句作用于结果表,删除表中不包含再select_list中的列。如果SELECT子句包含DISTINCT关键词,DBMS将从结果中删除重复的行。 step6:如果有ORDER BY子句,则按指定的排序规则对结果进行排序。 step7:对于交互式的SELECT语句,在屏幕上出现结果;对于嵌入式的SQL,使用游标将结果传递给宿主程序。以上就是SELECT语句的基本执行过程。理解它对于提高SQL查询的效率将有帮助。3、PL/SQL中的rownum在查询中用法举例主要是最近项目遇到,很实用的一些功能,给大家分享:有表如下:(1)查询表中价格最大的药品记录select distinct * from LAB_ITEM_DICT t where price in (select max(price) from lab_item_dict);(2)查询表中的前5行记录select * from lab_item_dict where rownum&=5;select * from lab_item_dict where lnnvl(rownum&5);select * from CLINIC_MASTER where rownum!=6;注意第二条:lnnvl 排除指定条件;第三条:理解关键点为rownum是伪列,先计算结果集,然后在结果集上加上rowmun列。上面3条语句,等价。(3)查询表中第6-10行数据select * from lab_item_dict where item_code not in (select item_code from lab_item_dict where rownum&=5) and rownum&=5或者:select * from lab_item_dict where lnnvl(item_code in (select item_code from lab_item_dict where rownum&=5)) and rownum&=5;(4)查询表中价格前5大的数据select distinct * from lab_item_dict where price in(select distinct price from (select distinct price from lab_item_dict order by price desc) where rownum&=5)and rownum&=5(5)查询另一张表中,就诊序号分别为‘1’和‘4’的两个病人日期最近的各前5条数据(这个是百度上面有人提问的一道淘宝网的面试题,类似的意思~)select * from (select * from OUTP_PRESC t where visit_no='1' order by visit_date desc ) where rownum&=5union allselect * from (select * from OUTP_PRESC t where visit_no='4' order by visit_date desc ) where rownum&=5暂时,想到常用的这么多~有空续。。。请点击下面的“绿色通道”--“关注DebugLZQ”,共同交流进步~相关阅读:rlwrap - 解决下SQLPLUS退格、上翻键乱码问题 http://www.codesec.net/Linux/90.htmSQLPLUS spool 到动态日志文件名 http://www.codesec.net/Linux/88.htmOracle SQLPLUS提示符设置 http://www.codesec.net/Linux/26.htm通过设置SQLPLUS ARRAYSIZE(行预取)加快SQL返回速度 http://www.codesec.net/Linux/11.htm更多Oracle相关信息见Oracle 专题页面 http://www.codesec.net/topicnews.aspx?tid=12
本文数据库(mysql)相关术语:navicat for mysql mysql workbench mysql数据库 mysql 存储过程 mysql***图解 mysql教程 mysql 管理工具
转载请注明本文标题:本站链接:
分享请点击:
1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
CodeSecTeam微信公众号
这个世界是不公平,但还没有不公平到让有能力的人无法出头的地步。
手机客户端
,专注代码审计及安全周边编程,转载请注明出处:http://www.codesec.net
转载文章如有侵权,请邮件 admin[at]codesec.net关于怎样在PL/SQL DEVELOPER里批量执行脚本?的搜索推荐 -oracle-TryCatch
>> 相关推荐
关于的搜索推荐
用PL/SQLDEVLOPER根据已有的脚本建库的过程当中,只要出现错误,执行就中断了。 和TOAD或SQLPULS不同,能一次性执行完,有错误就记录日志, 是不是我的方法不对,请指教
比如下面这一段,分开执行没问题,但是用打开脚本的方式一起执行就出错了,为什么?
CREATEUSERAAAIDENTIFIEDBYAAA; GRANTALLPRIVILEGESTOAAA; createuseronlogi
用Toad执行这个脚本也没有问题
要求:1. 在pl sql developer 8下批量执行sql和proceudure2. 这些脚本在不同的库中,完成一个库的脚本后,马上连接到另一个库,然后接着执行sql文件3. 如果脚本中...
开发需要使用的数据库环境,都用SQL创建,包括:创建表空间、用户、分配权限、创建表、创建包、包体、以及初始化数据等等。可是如何在一个SQL Window中执行呢?M...
在PL/SQL DEVELOPER里面怎样导出表的建表脚本
------------
”工具“--&”导出用户对象“
------------
table--Edit--View SQL...
我想看我这个表的脚本,不是视图形式,我要看代码。从哪里可以查看啊?
------------
用PL/SQL,在左侧的树状列表里找到表名,然后右键查看,界面的右下角会有...
这是我的代码create or replace procedure proc_test(chang in number,kuan in number,s out number)isbegins:=chang*declarechang number:=6;kuan ...
pl/sql developer开发问题:不清楚pl/sql developer 都有哪些用处?它可以和那些软件结合开发程序?哪个方面有前途?
------------
我个人觉得它用起来不是很方...
pl/sql developer开发问题:不清楚pl/sql developer 都有哪些用处?它可以和那些软件结合开发程序?哪个方面有前途?
------------
後台程序開發為主主要解決後...
怎么作,或者有什么其它工具?很急啊
------------
当然可以啊,直接用菜单中tools里的导出就可以。
------------
楼上说的对。
------------
gold里也有工...
我刚刚在虚拟机上配置好oracle 10g,系统是RHEL 4。部署完成后,我在使用的时候出现了很奇怪的问题。我在sqlplus中运行insert,update等语句,都没有问题。但是在p...
请教如何批量执行多个SQL脚本文件?谢谢!
------------
CLP的命令只支持单个脚本的执行,但你可以再新建一个脚本,里面存放的就是执行这些命令的脚本。
各位大侠:pl sql developer中怎么执行desc语句;在命令窗口中执行语句怎么没什么反应,pl sql developer中怎么查看命令窗口的执行结果;哪位仁兄有pl sql devel...
SELECT 123SELECT EXP_CODE FROM EXP_STOCK_BALANCE我想执行这两条命令并显示出来sql窗口里执行老是报错,试了test窗口中也报错 report窗口也不...
装完oracle10g后,用sqlplus和iSQL*Plus都能登录数据库,可是用pl/sql developer填了用户名密码等信息之后点OK之后,然后写个简单的select 1 from dual 执行之后就...
每次PL/SQL developer 都把写的 语句全都执行列在下面 写多了很难找 谁告诉我如何设置 只显示当前我执行的语句结果 而不是从上到下都执行显示出来 英文版的
请问我想用PL/SQL developer 导出一组以"FR_T"打头的表,请问该怎么写?或者直接用exp命令导出也行。但exp命令里tables=(table1,table2...)好像只能指定表明,...