您的位置:首页 > 数据库 > SQL

PL/SQL DEVELOPER中的专用复制(Special Copy)

2007-11-12 15:13 169 查看
PL/SQL DEVELOPER中的专用复制(Special Copy)

--摘自PL/SQL DEVELOPER6.0的中文PDF帮助手册

如果你正在用 PL/SQL Developer 写 SQL 和 PL/SQL 代码,随后你又要在其它工具里使用代码,例如象 3GL 这样的程序设计语言,那么你可能需要把这些代码转换为稍微不同的格式。让我们假设你已经在 PL/SQL Developer 里写了并测试了这样一个SQL 语句:

select deptno, sum(sal) mgr_sal from emp

where job = 'MANAGER'

group by deptno

order by mgr_sal desc

例如,如果你要在Borland Delphi 里使用这个语句,你可能需要象这样的格式:

SQL := 'select deptno, sum(sal) mgr_sal from emp' + #13#10 +

'where job = ''MANAGER''' + #13#10 +

'group by deptno' + #13#10 +

'order by mgr_sal desc';

为了这个目的,在右击了编辑器里的一个选择后,你可以使用来自于编辑菜单或来自于弹出式菜单的专用复制功能。这个功能有一个子菜单,它显示了所有被定义的专用复制格式。在选择了格式之后,被转换的代码就被储存在剪贴板上了,这样你就可以粘贴它到相应工具的编辑器里了。专用复制格式被定义在 PL/SQL Developer 安装目录下的 SpecialCopy 子目录里。你可以改变预先确定的复制格式或者添加新的复制格式。仅仅简单地添加一个带有 .copy 扩展名的文本文件就可以了,它包含了一个针对 PL/SQL 代码第一行的变量(<line_1>)、一个针对 PL/SQL 代码最后一行的变量(<line_N>)和一个针对所有其它行的变量(<line_*>)。下面是一个针对 Borland Delphi 的例子:

;PL/SQL Developer SpecialCopy definition for Borland Delphi

;<line_1> for first line

;<line_*> for all other lines

;<line_N> for last line

;

SQL := '<line_1>' + #13#10 +

'<line_*>' + #13#10 +

'<line_n>';

第一行需要为指派到 SQL 的变量加上前言,接下来需要有一个 CR/LF 对。最后一行不需要有CR/LF 对,但需要用分号来终止。所有其它行仅仅需要 CR/LF 接在后面。如果 <line_1> 和 <line_n> 都与 <line_*> 一样,你可以忽略它们。在一些语言里,你需要对特定的字符使用换码序列。例如,在 C++ 里,你要对 tab字符(ASCII 码为 9)使用 "t 。要定义这些换码序列,请使用 #define 关键词:

#define char(9) = "t

#define " = ""

String("<line_1>"n") +

String("<line_*>"n") +

String("<line_n>");

你还可以使用 “#define compress” 来指出你要从结果里移除所有多余的空字符(空格、制表符和换行)。

注意,.copy 文件的名字将被包括在菜单里,所以你应该使用描述性的文件名。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: