0

在我需要移植到 C# 的一些遗留 Delphi 代码中,我遇到了在我看来相当奇怪的 [e,o]“SQL 语句”。

有问题的 TQuery 组件具有以下 SQL 属性:

Begin
  MAILUTIL.SEND_MAILTXT@LEOPARD('rr@crk.com', :SUB , :TEXT, 'rr@crk.com');
  MAILUTIL.SEND_MAILTXT@LEOPARD('ba@rdlands.gov', :SUB , :TEXT, 'ba@rdlands.gov');
End;

通常,SQL 属性是这样的字符串:

Select * from Bakery where Item = 'Pie'

..所以这让我陷入了众所周知的循环。这是“甲骨文”还是什么?

4

2 回答 2

4

那是一个 PL/SQL 块(Oracle 对 SQL 的过程扩展)。我的猜测是MAILUTIL远程数据库LEOPARD中定义了一个包,该包中定义了一个SEND_MAILTXT过程。 MAILUTIL也可以是模式名称和SEND_MAILTXT独立过程,但这似乎不太可能。

于 2012-04-18T20:16:13.773 回答
-1

是的,oracle 能够在 pl/sql 中发送电子邮件,但我认为这是一个不好的做法。尝试使用该“查询”将其移动到 rdbms 之外使用的任何编程语言,或在这种情况下调用外部脚本文件。

原因:如果邮件进程因任何原因失败,它可能会回滚整个事务,并且还有其他缺点。

于 2012-04-18T20:15:32.380 回答