⑴ plsql如何执行.sql文件刚接触,不熟悉,能细讲下吗谢谢
方法和详细的操作步骤如下:
1、第一步,打开软件,进入数据库连接界面,见下图,转到下面的步骤。
⑵ 进入PLSQL的命令窗口,输入SQL语句后,应该如何执行
1、首先在电脑中,找到燃搭桥并登录PLSQL,如下图所示。
⑶ 如何利用BAT文件登陆OracleSql并执行多个sql脚本PLSQL语句
首先,做一个简单的sql文件(log.sql)。
在这个SQL文件中我们创建了一个表。
接下来,我们来建一个bat批处理文件(log.bat)。
在这个bat文件里面我们调用绝枣碰对路径的sql文件,并将执行过程及结果输出到log.txt文件中。
最后,我们运行bat文件,执行多个sql脚本plsql语句。
⑷ plsql使用教程
plsql使用教程如下:
1.在这里配置好数据库服务,之后就可以登录了。
plsql优点
支持SQL:SQL是访问数据库的标准语言,通过SQL命令,用户可以操纵数据库中的数据。PL/SQL支持所有的SQL数据操纵命令、游标控制命令、事务控制命令、SQL函数、运算符和伪列。同时PL/SQL和SQL语言紧密集成,PL/SQL支持所有的SQL数据类型和NULL值。
支持面向对象编程:PL/SQL支持面向对象的编程,在PL/SQL中可以创建类型,可以对类型进行继承,可以在子程序中重载方法等。
更好的性能:SQL是非过程语言,只能一条一条执行,而PL/SQL把一个PL/SQL块统一进行编译后执行,同时还可以把编译好的PL/SQL块存储起来,以备重用,减少了应用程序和服务器之间的通信时间,PL/SQL是快速而高效的。
可移植性:使用PL/SQL编写的应用程序,可以移植到任何操作系统平台上的Oracle服务器,同时还可以编写可移植程序库,在不同环境中重用。
安全性:可以通过存储过程对客户机和服务器之间的应用程序逻辑进行分隔,这样可以限制对Oracle数据库的访问,数据库还可以授权和撤销其他用户访问的能力。
⑸ 如何把SQL查询的结果通过plsql输出出来
如何把SQL查询的结果通过plsql输出出来。
通过游标把查询结果循环输出出来。
输出有内置的output函数可以调用。
伪代码如下,假设参数2为procere中
out类型的输出值:
declare
a
varchar2(120);
b
varchar2(130);
begin
a
:=
参数1;
b
:=
'';
begin
[pacakge].[procere](参数1->a,
参数2->b);
dbms_output.putline('b
=
'||shub);
exception
when
others
then
dbms_output.put_line(sqlerrm);
end;
end;
/
(5)sql提示符调用plsql扩展阅读:
因为PL/SQL允许混合SQL声明和过程结构,因此可以在将声明发送到甲骨文系统去执行之前使用PL/SQL区段和副程序来组合SQL声明,没有PL/SQL,甲骨文需要就每次处理SQL声明,在网络环境中,这将影响交通流量,而且增加响应时间。PL/SQL区段只被编译一次并且以可运行的形式储存,以降低响应时间。
⑹ PLSQL执行sql的几种方法
plsql很方便我们执行sql。下面就简单介绍我常用的几种(当然每次svn的分支也可以ant脚本自动执行某个文件下的所以sql文件)首先打开plsq的命令窗口1)执行sql文件(可以把需要执行的sql放一个文件中)输入@'' 在单引号中输入sql文件的路径既可,比如D:\db下的jbpm.oracle.sql文件,见下图(sql文件内容是select * from system_menu r where r.menu_name='销售订单' ;) 2)导入dmp文件。导入dmp文件前先删除对应的user(下面以test_user为例)drop user test_user cascade;
$ impdp system/test123@SYSTEM directory=data_pump_dir schemas=test_user mpfile=date.DMP REMAP_SCHEMA=test_user:test_userTABLE_EXISTS_ACTION=replace logfile=imp.log;
alter user test_user identified by 123456; 3)当需要重新从正式版数据库到数据到测试版时,我们需要重启测试版服务器或者kill掉应用程序服务器(比如tomcat)的session连接v$session 这张表可以查找到连接 oracle 数据库的应用程序基本信息。因此可以通过该表来kill掉相应程序的session如果你想kill到连接到用户 test_user ,可以执行下面的sql: select * from v$session r where r.USERNAME=‘test_user’ ;然后kill对应的session'就行了,参考下面的截图: 比如你要kill 第一条;就执行下面的sql : alter system kill session '21,77' ; //因为sid, serial#.这2列很唯一的。 下面补充一些连接oracle的应用程序信息和oracle 操作 session 情况。 1.查找到连接 oracle 数据库的应用程序基本信息。 select sid, serial#,
username, --连接用户名
program, --应用程序名
machine, --机器名
osuser, --操作系统用户
logon_time --登录时间
from v$session; 2.如何查看session级的等待事件?当我们对数据库的性能进行调整时,一个最重要的参考指标就是系统等待事 件。$system_event,v$session_event,v$session_wait这三个视图里记录的就是系统级和session级的等待 事件,通过查询这些视图你可以发现数据库的一些操作到底在等待什么?是磁盘I/O,缓冲区忙,还是插锁等等。通过如下sql你可以查询你的每个应用程序到底在等待什么,从而针对这些信息对数据库的性能进行调整。
Select s.username,s.program,s.status,se.event,se.total_waits,se.total_timeouts,se.time_waited,se.average_wait
from v$session s, v$session_event se
Where s.sid=se.sid And se.event not like 'SQl*Net%' And s.status ='ACTIVE'And s.username is not null 3.oracle中查询被锁的表并释放session SELECT A.OWNER,A.OBJECT_NAME,B.XIDUSN,B.XIDSLOT,B.XIDSQN,B.SESSION_ID,B.ORACLE_USERNAME, B.OS_USER_NAME,B.PROCESS, B.LOCKED_MODE, C.MACHINE,C.STATUS,C.SERVER,C.SID,C.SERIAL#,C.PROGRAM
FROM ALL_OBJECTS A,V$LOCKED_OBJECT B,SYS.GV_$SESSION C
WHERE ( A.OBJECT_ID = B.OBJECT_ID ) AND (B.PROCESS = C.PROCESS ) ORDER BY 1,2释放session Sql:alter system killsession'sid,serial#'
alter systemkillsession'379,2'
alter systemkillsession'374,6938'4.查看占用系统io较大的session SELECT se.sid,se.serial#,pr.SPID,se.username,se.status,se.terminal,se.program,se.MODULE,se.sql_address,st.event,st.p1text,si.physical_reads,si.block_changes
FROM v$session se, v$session_wait st,v$sess_io si,v$process pr
WHERE st.sid=se.sid AND st.sid=si.sid AND se.PADDR=pr.ADDR AND se.sid>6 AND st.wait_time=0 AND st.event NOT LIKE '%SQL%' ORDER BY physical_reads DESC5.找出耗cpu较多的session select a.sid,spid,status,substr(a.program,1,40) prog,a.terminal,osuser,value/60/100 value
from v$session a,v$process b,v$sesstat c
where c.statistic#=12 and c.sid=a.sid and a.paddr=b.addr order by value desc
6.另外oracle是否运行可以用sql语句查出:select status from v$instance;
其中,status可能返回三种值:open(数据库打开),mount(数据库已经加载,但还没有打开),started(数据库进程已经启动,但是还没有加载),这个数据字典可以在数据库没有打开的情况下查询,但是需要用sys用户执行。
反应时间,请求数需要具体说明到底是那个参数。你可以参考字典;v$status,v$session(看当前有多少个连接用户等).