set serveroutput on size 100000
DECLARE
c utl_tcp.connection -- TCP/IP connection to the Web server
i number
j number
BEGIN
c := utl_tcp.open_connection('10.18.1.11', 51000) -- open connection
begin
loop
i := utl_tcp.available(c)
exit when i<=0
dbms_output.put_line('READ='||To_Char(i))
-- while i>0 loop
dbms_output.put(utl_tcp.get_text(c,i)) -- read result
--i :=i-1
-- end loop
end loop
exception
when others then null
end
dbms_output.put_line('')
i := utl_tcp.write_line(c, 'HELLO WORLD')
dbms_output.put_line('WRITE='||To_Char(i))
begin
j := 0
loop
i := utl_tcp.available(c)
if (i=0) then
j := j+1
if (j>=50) then
exit
else
for i in 0..1000 loop
null
end loop
end if
else
dbms_output.put_line('READ='||To_Char(i))
dbms_output.put(utl_tcp.get_text(c,i)) -- read result
end if
end loop
exception
when others then null
end
dbms_output.put_line('')
utl_tcp.close_connection(c)
end
默认安装时,会安装一个PL/SQL外部程序(ExtProc)条目在listener.ora中,是oracle为调用外部程序默认配置的监听,它的名字通常是ExtProc或PLSExtProc,但一般不会使用它,可以直接从listener.ora中将这项移除,因为对ExtProc已经有多种攻击手段了,在不使用外部程序时,oracle也是建议删除的。PLSExtPro 是pl/sqlexternalprocdure的意思,就是在pl/sql中调用外部语句,如c,java写的过程。现在,Oracle已经全面支持JAVA了,这东西也就过时了,之所以继续保留是考虑到兼容以前老版本的数据库实例。有时可能会在多个数据库实例之间拷贝listener.ora,请检查拷贝来的文件中是否含有不需要的服务,确保只留下的确需要的服务项目,减少监听器受攻击的面。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)