【发布时间】:2013-12-07 01:32:48
【问题描述】:
我开始使用 pl/sql 开发一个 Oracle 运算符。指南中有一些示例,但现在我坚持一些。
在我见过的所有例子中,都是这样的:
CREATE OPERATOR Contains
BINDING (VARCHAR2, VARCHAR2)
RETURN NUMBER
USING text.contains;
我们在WHERE 子句中这样使用它:
SELECT *
FROM MyEmployees
WHERE Contains(resume, 'Oracle') = 1;
是否可以创建一个操作符,像=, +, ...一样使用,有左有右?
在这种情况下像:
SELECT *
FROM MyEmployees
WHERE resume Contains 'Oracle'
感谢您的帮助。
编辑:
我知道 PostgreSQL 可以,但没有找到 Oracle
http://www.postgresql.org/docs/current/static/sql-createoperator.html
【问题讨论】:
-
这通常被称为中缀运算符。我对Oracle不熟悉,所以无法给出答案;但是我遇到的大多数语言都不允许您定义 new 中缀运算符(通常它们必须由解析器仔细处理)。
-
@Damien_The_Unbeliever:Postgres 允许这样做;)(我认为 C++ 也是如此)
标签: sql oracle plsql operators