- 浏览: 337315 次
- 性别:
- 来自: 西安
文章分类
最新评论
-
hufangxian:
估计面试官都被你的回答搞晕了。
抽象类和接口的理解 -
alvin198761:
需要了解多态和设计模式,了解一些框架的原理,你就知道这东东真正 ...
抽象类和接口的理解 -
sangei:
谢谢楼上提醒,希望慢慢能有所进步。
抽象类和接口的理解 -
jackra:
书背的不错可以看看设计模式如何使用抽象类
抽象类和接口的理解 -
ptsd:
lag(column_x,number1,XX)用来返回当前数 ...
【转】oracle的LAG和LEAD分析函数
SQL code
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0
Connected as SYS
SQL>
SQL> --1.使用具有dba权限用户如sys创建一个目录,如:
SQL> CREATE OR REPLACE DIRECTORY TESTDIR AS 'D:\temp\';
Directory created
SQL> --2.将读写访问权限赋给需要操作文件的用户,如test用户:
SQL> GRANT READ,WRITE ON DIRECTORY TESTDIR TO test;
Grant succeeded
SQL>
SQL code
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0
Connected as test
SQL>
SQL> --3.登录test用户,在其下创建一个函数:
SQL> CREATE OR REPLACE FUNCTION getCompanyValue(file_path VARCHAR2, company_code VARCHAR2)
2 RETURN VARCHAR2 IS
3 --//XML解析器
4 xmlPar XMLPARSER.parser := XMLPARSER.NEWPARSER;
5 --//DOM文档对象
6 doc xmldom.DOMDocument;
7 len INTEGER;
8 personNodes xmldom.DOMNodeList;
9 chilNodes xmldom.DOMNodeList;
10 tempNode xmldom.DOMNode;
11 tempArrMap xmldom.DOMNamedNodeMap;
12 --================================
13 --以下变量用于获取XML节点的值
14 pid VARCHAR2(100);
15 companyValue VARCHAR2(100) := '';
16 tmp INTEGER;
17 --================================
18 BEGIN
19 xmlPar := xmlparser.newParser;
20 xmlparser.parse(xmlPar, file_path);
21 doc := xmlparser.getDocument(xmlPar);
22 -- 释放解析器实例
23 xmlparser.freeParser(xmlPar);
24 -- 获取所有PERSON元素
25 personNodes := xmldom.getElementsByTagName(doc, 'Company');
26 len := xmldom.getLength(personNodes);
27 --遍历所有PERSON元素
28 FOR i IN 0 .. len - 1 LOOP
29 --获取第i个PERSON
30 tempNode := xmldom.item(personNodes, i);
31 --所有属性
32 tempArrMap := xmldom.getAttributes(tempNode);
33 --获取PERSONID的值
34 pid := xmldom.getNodeValue(xmldom.getNamedItem(tempArrMap, 'CODE'));
35 IF pid = company_code THEN
36 --获取子元素的值
37 chilNodes := xmldom.getChildNodes(tempNode);
38 tmp := xmldom.GETLENGTH(chilNodes);
39 companyValue := xmldom.getNodeValue(xmldom.getFirstChild(xmldom.item(chilNodes, 0)));
40 EXIT;
41 END IF;
42 END LOOP;
43 -- 释放文档对象
44 xmldom.freeDocument(doc);
45 RETURN companyValue;
46 EXCEPTION
47 WHEN OTHERS THEN
48 DBMS_output.PUT_LINE(SQLERRM);
49 END getCompanyValue;
50 /
Function created
SQL> --4.将company.xml文件复制到数据服务器的D:\temp\目录下
SQL> --5.测试该函数
SQL> var companyValue varchar2(100);
SQL> exec :companyValue := getCompanyValue('TESTDIR\company.xml','abc');
PL/SQL procedure successfully completed
companyValue
---------
12345678944555
SQL> print companyValue
companyValue
---------
12345678944555
SQL>
附:company.xml文件
XML code
12345678944555
1011121314156156
注意:上面是10g的演示,如果是oracle9i,则是设置utl_file_dir参数,重启数据库使参数生效,如
alter system set utl_file_dir='D:\temp' scope=spfile;
调用:
SQL>exec :companyValue := getCompanyValue('D:\temp\company.xml','abc');
load data The proposed one is like this Regards Its really brilliant piece of work from your side. It was nearly matching my solution. I will use the same logic for rest of the programs, if in case of any doubts in further I will seek your help ..:). Regards but the the problem ..if I entered [1] in the sql I am getting all the first elements ..if I enter [2] .. getting 2nd elements..
I've already gone through few threads in forums itself, but for my requirement nothing comes closer, I am posting my query. I've one xml file like this
<?xml version="1.0"?>
<ACCOUNT_HEADER_ACK>
<HEADER>
<STATUS_CODE>100</STATUS_CODE>
<STATUS_REMARKS>check</STATUS_REMARKS>
</HEADER>
<DETAILS>
<DETAIL>
<SEGMENT_NUMBER>2</SEGMENT_NUMBER>
<REMARKS>rp polytechnic</REMARKS>
</DETAIL>
<DETAIL>
<SEGMENT_NUMBER>3</SEGMENT_NUMBER>
<REMARKS>rp polytechnic administration</REMARKS>
</DETAIL>
<DETAIL>
<SEGMENT_NUMBER>4</SEGMENT_NUMBER>
<REMARKS>rp polytechnic finance</REMARKS>
</DETAIL>
<DETAIL>
<SEGMENT_NUMBER>5</SEGMENT_NUMBER>
<REMARKS>rp polytechnic logistics</REMARKS>
</DETAIL>
</DETAILS>
<HEADER>
<STATUS_CODE>500</STATUS_CODE>
<STATUS_REMARKS>process exception</STATUS_REMARKS>
</HEADER>
<DETAILS>
<DETAIL>
<SEGMENT_NUMBER>20</SEGMENT_NUMBER>
<REMARKS> base polytechnic</REMARKS>
</DETAIL>
<DETAIL>
<SEGMENT_NUMBER>30</SEGMENT_NUMBER>
</DETAIL>
<DETAIL>
<SEGMENT_NUMBER>40</SEGMENT_NUMBER>
<REMARKS> base polytechnic finance</REMARKS>
</DETAIL>
<DETAIL>
<SEGMENT_NUMBER>50</SEGMENT_NUMBER>
<REMARKS> base polytechnic logistics</REMARKS>
</DETAIL>
</DETAILS>
</ACCOUNT_HEADER_ACK>
Here the xml structure is like Master and child structure I want to insert that data into Oracle tables by using the sql*loader initally I tried to created one control file but in the control file I don't know how to terminate, so I created two control files
load data
infile 'acct.xml' "str '</DETAIL>'"
truncate
into table xxrp_acct_detail
TRAILING NULLCOLS
(
dummy filler terminated by "<DETAIL>",
SEGMENT_NUMBER enclosed by "<SEGMENT_NUMBER>" and "</SEGMENT_NUMBER>",
REMARKS enclosed by "<REMARKS>" and "</REMARKS>"
)
infile acct.xml' "str '</HEADER>'"
truncate
into table xxrp_acct_header
fields terminated by "<HEADER>"
TRAILING NULLCOLS
(
dummy filler terminated by "<HEADER>",
STATUS_CODE enclosed by "<STATUS_CODE>" and "</STATUS_CODE>",
STATUS_REMARKS enclosed by "<STATUS_REMARKS>" and "</STATUS_REMARKS>"
)
I am referring the same xml file in both the control files, where as for the for the first control file I was able to load the records but the second which I assume as header table not able to load the rest records. I am getting the below mentioned error.
Record 2: Rejected - Error on table XXRP_ACCT_HEADER, column DUMMY.
Field in data file exceeds maximum length
Record 3: Rejected - Error on table XXRP_ACCT_HEADER, column DUMMY.
Field in data file exceeds maximum length
Actually if its possible to seggrate in one control file then it will be helpful for me. I am also open for the external table option also. Please help me in this regard.
Thanks in advance.
Regards
Nagendra
odie_63
Posts: 1,563
Registered: 04/28/09
Re: Load xml data in Oracle table
Posted: 2011-2-23 上午1:33 in response to: 838961
Helpful
Using SQL*Loader as an XML parser is not what I'd call a good idea.
How about using built-in XML functionalities in the database?
What's your database version? (select * from v$version)
Here's an example working on 10.2 and upwards :SQL> create directory test_dir as 'c:\ora11\test';
Directory created
SQL>
SQL> create table xxrp_acct_detail (
2 segment_number number,
3 remarks varchar2(100)
4 );
Table created
SQL>
SQL> create table xxrp_acct_header (
2 status_code number,
3 status_remarks varchar2(100)
4 );
Table created
SQL>
SQL> DECLARE
2
3 acct_doc xmltype := xmltype( bfilename('TEST_DIR','acct.xml')
4 , nls_charset_id('AL32UTF8') );
5
6 BEGIN
7
8 insert into xxrp_acct_header (status_code, status_remarks)
9 select *
10 from xmltable(
11 '/ACCOUNT_HEADER_ACK/HEADER'
12 passing acct_doc
13 columns status_code number path 'STATUS_CODE',
14 status_remarks varchar2(100) path 'STATUS_REMARKS'
15 );
16
17 insert into xxrp_acct_detail (segment_number, remarks)
18 select *
19 from xmltable(
20 '/ACCOUNT_HEADER_ACK/DETAILS/DETAIL'
21 passing acct_doc
22 columns segment_number number path 'SEGMENT_NUMBER',
23 remarks varchar2(100) path 'REMARKS'
24 );
25
26 END;
27 /
PL/SQL procedure successfully completed
SQL> select * from xxrp_acct_header;
STATUS_CODE STATUS_REMARKS
----------- --------------------------------------------------------------------------------
100 check
500 process exception
SQL> select * from xxrp_acct_detail;
SEGMENT_NUMBER REMARKS
-------------- --------------------------------------------------------------------------------
2 rp polytechnic
3 rp polytechnic administration
4 rp polytechnic finance
5 rp polytechnic logistics
20 base polytechnic
30
40 base polytechnic finance
50 base polytechnic logistics
838961
Posts: 64
Registered: 02/22/11
Re: Load xml data in Oracle table
Posted: 2011-2-23 上午2:20 in response to: odie_63
I've read your earlier resolved messages/threads where you have exceptionally helped out many of guys like me. Hats off for that !!
Now in my below requirement acutally in begining I was in fact in thought of making it two tables so that it helps but the then I will be missing the link between the two tables I regret to my own solution. Can you please help me out in giving the solution like this. I am totally newbie to xml kind integration platform.
The table (combined two tables into single so that I can have refernce of each column), my db version is Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
create table xxrp_acct_details(
status_code number,
status_remarks varchar2(100),
segment_number number,
remarks varchar2(100)
);
And reading the same 'acct.xml ' I need to write a script
Now my final result should fetch me like this
select * from xxrp_acct_details
Statuscode status remarks segement remarks
100 check 2 rp polytechnic
100 check 3 rp polytechnic administration
100 check 4 rp polytechnic finance
100 check 5 rp polytechnic logistics
500 process exception 20 base polytechnic
500 process exception 30
500 process exception 40 base polytechnic finance
500 process exception 50 base polytechnic logistics
Please let me know how can I write pl/sql script for this scenario.
Thanks in Advance for your great help!!!
Nagendra
odie_63
Posts: 1,563
Registered: 04/28/09
Re: Load xml data in Oracle table
Posted: 2011-2-23 上午4:01 in response to: 838961
Correct
1) Reading headers and details using two separate XMLTables : DECLARE
acct_doc xmltype := xmltype( bfilename('TEST_DIR','acct.xml'), nls_charset_id('AL32UTF8') );
BEGIN
insert into xxrp_acct_details (status_code, status_remarks, segment_number, remarks)
select x1.status_code,
x1.status_remarks,
x2.segment_number,
x2.remarks
from xmltable(
'/ACCOUNT_HEADER_ACK/HEADER'
passing acct_doc
columns header_no for ordinality,
status_code number path 'STATUS_CODE',
status_remarks varchar2(100) path 'STATUS_REMARKS'
) x1,
xmltable(
'$d/ACCOUNT_HEADER_ACK/DETAILS[$hn]/DETAIL'
passing acct_doc as "d",
x1.header_no as "hn"
columns segment_number number path 'SEGMENT_NUMBER',
remarks varchar2(100) path 'REMARKS'
) x2
;
END;
The first one (aliased X1) extracts all headers into separate rows. The generated column HEADER_NO is used to keep track of the header rank inside the document.
Then we join a second XMLTable (X2), passing it HEADER_NO, so that we can access the corresponding DETAIL elements.
2) Reading with a single XMLTable, but a little more complex XQuery : DECLARE
acct_doc xmltype := xmltype( bfilename('TEST_DIR','acct.xml'), nls_charset_id('AL32UTF8') );
BEGIN
insert into xxrp_acct_details (status_code, status_remarks, segment_number, remarks)
select x.*
from xmltable(
'for $i in /ACCOUNT_HEADER_ACK/HEADER
return
for $j in $i/following-sibling::DETAILS[1]/DETAIL
return element r {$i, $j}'
passing acct_doc
columns status_code number path 'HEADER/STATUS_CODE',
status_remarks varchar2(100) path 'HEADER/STATUS_REMARKS',
segment_number number path 'DETAIL/SEGMENT_NUMBER',
remarks varchar2(100) path 'DETAIL/REMARKS'
) x
;
END;
Here, we use an XQuery to extract the info we need.
Basically, it's the same logic as above but with two nested loops that access each HEADER, then each DETAILS located immediately after in document order.
Here's the link to the documentation regarding XMLTable and XQuery in Oracle :
http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28369/xdb_xquery.htm#CBAGCBGJ
838961
Posts: 64
Registered: 02/22/11
Re: Load xml data in Oracle table
Posted: 2011-2-23 下午5:41 in response to: odie_63
Once again thanks for your great effort.
Nagendra
841557
Posts: 1
Registered: 03/03/11
Re: Load xml data in Oracle table
Posted: 2011-3-3 上午11:31 in response to: odie_63
I appreciate your suggestions..!
well UI am facing an issue with loading xml data in to oracle table...
the problem here is there are elements repeating in xmls and but its not consistantl.
to get the data from repeating elements I wrote a procedure as follows
create or replace PROCEDURE xyz is
--declaring a cursor
CURSOR abc_CURSOR IS
select CLOB_ID
from table_CLOB ;
var_error_id NUMBER(22);
var_error_data varchar2(4000);
cnt INTEGER(2);
BEGIN
--opening a cursor
open abc_CURSOR;
LOOP
--fetching records from a cursor
fetch abc_CURSOR into var_error_id;
--cnt := 0
--loop
--cnt:= cnt+1;
for cnt in 1..3 loop
SELECT CLOB_ID
/*||'|'||xmltype(tnameclob).extract('array/errInfo[cnt]/text()').getStringVal()
||'|'||xmltype(tname_clob).extract('array/errInfo[1]/errorCode/text()').getStringVal()
|'|'||xmltype(tname_clob).extract('array/errInfo[1]/type/text()').getStringVal() */
||'|'||xmltype(tname_clob).extract('array/errInfo[cnt]/Replaced/text()').getStringVal()
||'|'||xmltype(tname_clob).extract('array/errInfo[cnt]/sentCode/text()').getStringVal()
||'|'||KEY
into var_error_data
FROM (SELECT CLOB_ID,
Nvl((REGEXP_REPLACE(tname_CLOB,'[^'||CHR (32)||'-'||CHR(127)||']','')),'<?xml version="1.0" encoding="UTF-8"?> <NULL> </NULL>')tname_CLOB,
KEY FROM clob e where clob_id = var_error_id )A
;
DBMS_OUTPUT.put_line(cnt);
DBMS_OUTPUT.put_line(var_error_data);
--end loop;
--testing exit conditions
EXIT when abc_CURSOR%NOTFOUND;
END LOOP;
--closing the cursor
close abc_CURSOR;
DBMS_OUTPUT.put_line('DONE');
END;
but if I enter [cnt] ..xml is not parsing and getting null values.. i.e
|784910||||2011-02-24 14:29:05|13872576
1
784913||||2011-02-24 14:29:07|13872583
2
784919||||2011-02-24 14:29:14|13872598
3
could you please let me know what was my mistake in it..
Dan G
Posts: 1
Registered: 05/11/11
Re: Load xml data in Oracle table
Posted: 2011-5-11 上午10:35 in response to: odie_63
odie_63
Posts: 1,563
Registered: 04/28/09
Re: Load xml data in Oracle table
Posted: 2011-5-11 下午12:11 in response to: Dan G
Object-Relational and binary XML storages are optimized for efficient loading and data access.
Raj Rammohan
Posts: 16
Registered: 01/17/08
Re: Load xml data in Oracle table
Posted: 2011-5-19 下午2:42 in response to: odie_63
it's a very nice explanation. anybody can understand what's that
will you please tell me how we can do the same in Oracle 9i EE 9.2.0.8.0.
Thanks a lot
Ram
user12187987
Posts: 1
Registered: 06/30/11
Re: Load xml data in Oracle table
Posted: 2011-6-30 上午2:04 in response to: odie_63
It is nice coding.
because I am working in xml data file uploading process.
so thanks for very good documents.
Thanks & Regards
Ram Babu Mandal
09958422606
发表评论
-
mysql之union
2015-11-12 17:04 734今天来写写union的用法及一些需要注意的。 unio ... -
(转)in 和 exist
2013-09-09 23:30 1244in 和 exists区别in 是把 ... -
(转)Oracle中的Join
2013-09-09 15:56 8901、概述 1.1、所有的join连接,都可以加上类似wh ... -
(转)数据库三范式
2013-07-10 11:52 857关系数据库设计范式介 ... -
oracle的分号和斜杠(转)
2012-10-17 10:51 5552引用 1. Adding a slash ... -
(转)oracle索引整理
2012-04-13 14:38 0一, oracle的索引陷阱一个表中有几百万条数据,对某个字 ... -
(转)Oracle中的Hash Join祥解
2012-04-13 01:28 1454一、 hash join概念 hash jo ... -
(转)oracle 表连接方式详解
2012-04-13 01:26 1231在查看sql执行计划时,我们会发现表的连接方式有多种,本文 ... -
(转)Oracle sql 优化2
2012-04-13 01:23 1251这里提供的是执行性能的优化,而不是后台数据库优化器资料: ... -
(转)Oracle sql 优化1
2012-04-12 22:27 1491ORACLE有个高速缓冲的概念,这个高速缓冲呢就是存放执 ... -
(转)join, inner join, left join, right join, full join的区别
2012-04-11 23:32 6084inner join可以简写为join 连接分为两种: ... -
(转)ORACLE 正斜杠(/)的作用
2012-03-22 23:32 2788正斜杠(/):在Oracle中,用来终止SQL语句。更准确的说 ... -
[转]oracle的复合索引两个知识点
2012-03-20 15:13 2413Oracle 9i以前的复合索引:如果索引有多个字段组成,索引 ... -
【转】oracle的LAG和LEAD分析函数
2012-03-19 17:19 5580Lag和Lead函数可以在一次查询中取出同一字段的前N ... -
[转]oracle临时表相关知识
2012-03-19 11:10 1295回复: 临时表存放在哪 ... -
Oracle中的rownum(伪列)用法解析
2012-03-19 10:44 1518注意:rownum从1开始; 1.rownum按照记录插入时的 ... -
Oracle 取整、四舍五入及格式化 Round/Floor/Ceil
2012-03-16 20:55 5479原文地址:http://kb.cnblogs.com/ ... -
Oracle秒变时间
2012-03-16 20:56 1228SQL:> select numtod ... -
Oracle时间加减单位时间
2012-03-07 21:00 1945加法 select sysdate,add_months(s ... -
(转)in和exists
2012-01-12 21:16 1183分析一下exists真的就比i ...
相关推荐
在32位环境中,PL/SQL开发者工具可能受到内存限制,因为32位系统最大只能识别约4GB的RAM,这对于大型数据库操作可能不够用。而64位版本则可以访问超过4GB的内存,从而提高运行效率和处理能力,尤其是在进行复杂查询...
本例子将介绍如何在PL/SQL中对XML进行解析和生成,帮助我们更好地理解和操作XML数据。 首先,让我们理解PL/SQL中的XML解析。在Oracle数据库中,有一个强大的XML处理功能集,包括XMLType数据类型和一系列内置的XML...
PL/SQL Developer是Oracle数据库当前最流行的开发工具之一,它在ORACLE数据库开发设计方面功能强大,使用方便,但是数据库管理方面一直比较欠缺。 DBATools For PL/SQL Developer 是一款PL/SQL Developer的辅助插件...
而“ExcelDocumentType”可能指的是一个特定的数据类型或者接口,用于在PL/SQL中操作Microsoft Excel文件。 描述中虽然没有提供具体信息,但通过博文链接我们可以推测这篇博客可能提供了一些实用的方法或示例,教...
例如:PL/SQL Developer安装在C:\Program Files\PLSQL Developer目录,那将DBATools.dll和DBAToolsConfig.xml文件复制到C:\Program Files\PLSQL Developer\PlugIns目录下,然后重启PL/SQL Developer就可以使用。...
**知识点详解:《PL/SQL Developer 用户指南》** 在IT领域,尤其是对于Oracle数据库开发者而言,《PL/SQL Developer 用户指南》是一份极其重要的资源。它不仅涵盖了软件的安装与配置,还深入讲解了如何利用该工具...
这份用户指南主要面向刚接触PL/SQL编程的开发者,尤其是那些不习惯阅读英文资料的读者,涵盖了从安装、程序编写到优化、测试以及专用SQL操作的全过程。 首先,指南介绍了系统需求、工作站安装和基于服务器的安装...
- 在控制面板中选择“卸载程序”,找到 PL/SQL Developer 并进行卸载操作。 #### 三、登录到 Oracle 数据库 - 启动 PL/SQL Developer 后,需要连接到 Oracle 数据库。 - 输入用户名、密码以及数据库连接字符串等...
### PL/SQL Developer 7.0 用户指南关键知识点解析 #### 一、介绍 **PL/SQL Developer** 是一款专为 Oracle 数据库设计的强大集成开发环境(IDE),它旨在简化和提升 PL/SQL 应用程序的开发效率。版本 7.0 作为该...
以上47个工具包是Oracle PL/SQL开发中的重要组成部分,它们提供了丰富的功能,帮助开发者更好地管理数据库、优化性能、调试代码、实现安全性和进行数据操作。熟练掌握这些工具包,将极大提升开发效率和维护能力。
### PL/SQL Developer 7.0 用户指南关键知识点解析 #### 一、介绍 - **PL/SQL Developer**:一款专为Oracle数据库设计的强大集成开发环境(IDE),旨在提高PL/SQL开发人员的工作效率。 - **版本信息**:文档描述的...
### 知识点:PL/SQL操作手册 #### 1. 安装PL/SQL Developer - **系统需求**:了解安装前需要满足的硬件和软件环境。 - **工作站安装**:在单个工作站上安装PL/SQL Developer的过程。 - **基于服务器安装**:在...
书中会介绍如何在PL/SQL中生成、解析和操作XML文档,以及如何使用XMLType数据类型和XML相关的内置函数。 总之,《精通Oracle 10g PL/SQL编程》是一本全面的教程,它涵盖了从基础到高级的PL/SQL编程技术,适用于...
Oracle 8引入了一些关键特性,比如改进的索引策略、物化视图、分区表以及对XML的支持,这些都增强了PL/SQL的应用场景。 PL/SQL允许开发人员编写存储过程、函数、触发器和包,这些都是数据库级别的可重用代码单元。...
2. **生成和管理XML文档**:利用PL/SQL可以在数据库内直接创建和管理XML文档。 3. **Web应用集成**:PL/SQL可以用来构建与数据库紧密集成的Web页面。 4. **自动化数据库管理**:例如,通过PL/SQL设置安全级别来管理...
- **卸载PL/SQL Developer**:如果需要卸载,可以通过控制面板中的“添加或删除程序”来进行操作。 #### 三、编写程序 - **创建程序**:在PL/SQL Developer中新建一个PL/SQL程序,可以是存储过程、函数或其他类型的...
文件"PLSQL解析XML.ppt"很可能包含了更详细的教程或示例,讲解了如何使用PL/SQL解析XML文档,可能包括XMLType的使用、DOM模型的操作以及XML数据的查询和更新方法。通过学习这个文件,你可以深入理解PL/SQL与XML的...
9. **XML支持**:11g Release 2引入了更强大的XML处理能力,如DBMS_XMLGEN和DBMS_XSLPROCESSOR包,使PL/SQL能够处理XML数据和转换。 10. **数据库链接**:PL/SQL可以创建和使用数据库链接,使得跨数据库的交互成为...
本指南旨在为使用 PL/SQL Developer 7 的用户提供详尽的操作指南,帮助用户充分利用其功能,提升开发效率。 #### 二、安装指南 ##### 2.1 系统需求 - 操作系统:Windows XP/Vista/7 或更高版本。 - 内存:至少 512...
2. **生成和管理XML文档**:PL/SQL支持直接在数据库中创建和管理XML文档,便于数据交换和集成。 3. **Web页面与数据库的结合**:PL/SQL可以用于构建动态Web内容,实现Web应用程序与数据库的无缝对接。 4. **自动化...