sqlplus sql执行存储过程(sql如何执行oracle存储过程)
一、Oracle批量导出存储过程(保持每个存储过程独立)
略微复杂,需要存储过程实现。
1、创建输出路径,比如你要在d盘test目录下输出,你就先在d盘根目录下建立一个test的目录。
2、sqlplus下以sysdba登录,执行以下语句
createorreplacedirectoryTMPas'd:\test';
grantread,writeondirectoryTMPtoscott;--比如我用的scott用户
altersystemsetutl_file_dir='d:\test'scope=spfile;
3、以上步骤执行完,需要重启数据库。
4、创建一个存储过程,代码如下(基本是不用改动,原封**即可):
CREATEORREPLACEPROCEDURESP_OUTPUT_PROCEDUREis
file_handleutl_file.file_type;
Write_contentVARCHAR2(1024);
Write_file_nameVARCHAR2(50);
v_namevarchar2(50);
v_textvarchar2(2000);
cursorcur_procedure_nameis
selectdistinctnamefromuser_sourcewheretype='PROCEDURE';
cursorcur_sp_outis
selectt.text
from(select0line,'CREATEORREPLACE'text
fromdual
union
selectline,text
fromuser_source
wheretype='PROCEDURE'
andname=v_name)t
orderbyline;
begin
opencur_procedure_name;
loop
fetchcur_procedure_name
intov_name;
exitwhencur_procedure_name%notfound;
write_file_name:=v_name||'.txt';
opencur_sp_out;
loop
fetchcur_sp_out
intov_text;
exitwhencur_sp_out%notfound;
file_handle:=utl_file.fopen('TMP',write_file_name,'a');
write_content:=v_text;
--writefile
IFutl_file.is_open(file_handle)THEN
utl_file.put_line(file_handle,write_content);
ENDIF;
--closefile
utl_file.fclose(file_handle);
endloop;
closecur_sp_out;
endloop;
closecur_procedure_name;
end;
5、创建完毕执行存储过程,这个就不赘述了,执行完毕后,你会发现d盘test目录下的文件名就是以存储过程名命名的txt文件,如图:
6、里边内容(就是存储过程创建时的代码,可能排版看着难看点,但是不影响使用):
二、PL***sql如何执行oracle存储过程
要成功执行这个存储过程,你需要注意几点:
1.select* from ods_area;不能直接在pl/sql中作为语句执行。
应该用 select字段 into plsql变量 from表名;
的形式来获取表中的数据,保存到plsql变量中。
2.存储过程的语法格式为:
create or replace procedure area
is
--变量声明;
begin
--过程主体;
end area;
3.如果存储过程代码无误,可以通过"/"来执行代码,编译存储过程。
4.通过exec或 execute来调用编译后的存储过程。
例如:
--创建procedure:
create or replace procedure area
is
num number;
v_areaRecord dual%ROWTYPE;
begin
--例子1
select* into v_areaRecord from dual;
--例子2
select 12345 into num from dual;
end area;
/
--通过/执行;
--调用
exec area;
三、sqlplus多行代码怎么
sqlplus多行代码怎么如何在sqlplus命令窗口执行脚本及多条命令_阿柠xn-CSDN博客_sqlplus多行
SQL*PLUS使用教程版本:Re le ase 11.2.0.2.0登录的方式*sqlplus US ER/PASSWORD*sqlplus回车,然后根据提示输入用户名与密码,此时密码不会显示出来查看当前用户的所有表名*se le ct*from...
CSDN技术社区2020-04-01
sqlplus如何将一条记录分多行显示,每字段一行?百度知道
回答:5
如果要其他效果,也可以用spool把结果写到文本文件里,然后编辑到所需要的样式!
百度知道2020-05-10
在Oracle中使用sqlplus插入多行字符串-编程之家
这在Toad中运行正常,但是当我将其保存为.sql文件并使用 sql plus运行时,它会将每行视为单独的查询,这意味着每一行都将失败(beacuse insert into table(id,string)values(1,“Line1...
编程之家2020-07-25
其他人还搜了
sqlplus生成代码
sqlplus修改代码
sqlplus打代码
sqlplus源代码
sqlplus代码
sqlplus代码权限不足
sqlplus查看view源代码
sqlplus返回错误代码
初用Oracel求救,怎样在SQL*Plus中批执行多个SQL语句.-CSDN社区
评论:10
简单的方法就是写在一个文件中,以×.sql文件名保存之,然后在sqlplus或PL/SQL DEVELOPER的SQL>@×.sql但如果语句很多的话,不建议使用该方法,这样效率太低,也很耗数据库资源!谢谢各位...
CSDN技术社区
sqlplus执行多个sql文件-芝士回答
1.在SQL*Plus中执行单个sql脚本文件: SQL>@c:\aaa.sql 2.在SQL*Plus中执行多个sql脚本文件:比如你要执行得2个sql脚本 a.sql和 b.sql现在你重新写一个脚本 c.sql其中得内容如下@@a.sql@@b.sql然后把c.sql放在a.sql和 b.sql得同一个目录中即可,然后在sqlplus下执行:SQL>@c.sql就可以了.当然有具体路径的加上路径即可,如下: SQL>@E:\c.sql注意事项...
芝士回答2021-03-27
mybatis-plus实现自定义SQL、多表查询、多表分页查询_Eric-x的博客-CSDN博客_mybatisplus自定义查询
plus中也是一样可以使用的,咱们直接上代码文章目录前言1、自定义SQL2、多表查询3、多表分页查询4、多表分页条件查询1、自定义SQL在mapper中自定义一个方法即可@Repositorypublic interface...
CSDN技术社区2022-11-09
怎么注释多行代码_芝士回答
在C++中,使用注释有两种方法,一、单行注释,使用英文状态下的输入法输入两斜杠即可(注意是从上到下从右边斜向左边,/(点号附近)二、多行注释,使用英文状态下的输入法输入在注释首部使用右...
芝士回答2022-03-04
mybatisplus一次性执行多条SQL语句插入(Oracle篇)gblfy的博客-CSDN博客_mybatis执行多条sql oracle
二、代码部分 2.1.controller package com.gblfy.modular.order.controller;import com.gblfy.modular.order.mapper.MysqlMoreInsertMapper;import...
CSDN技术社区2021-08-19
一条sql多个执行计划怎么处理_芝士回答
第一步:登入sql/plus执行命令(无先后顺序) set time on;(说明:打开时间显示) set autotrace on;(说明:打开自动分析统计,并显示SQL语句的运行结果) set autotrace traceonly;(说明:...
芝士回答2021-04-08
【已解决】批处理如何连续执行多个SQLPLUS命令-BAT求助&讨论-批处理之家批处理_BAT脚本_PowerShell_VBS_CMD_DOS_Perl_Python-Powered by...
代码如下: SQLPLUS user1/passwor1@sql SQLPLUS user2/passwor2@sql SQLPLUS user3/passwor3@sql执行的过程中,执行完第一条之后,控制台停在SQLPLUS必须手动输入EXIT,才能继续执行第二条。...
批处理之家
相关搜索
sqlplus普通用户怎么登录
怎么用sqlplus命令查看
sqlplus怎么登录oracle数据库
shell获取sqlplus退出代码
换行代码
sqlplus怎么调用存储过程
上古卷轴潜行代码
c注释代码多行
2018炫舞手游伴侣誓言还行代码
shell捕获sqlplus退出代码