今天在办公室提出了这个问题.我没有计划做这样的事情,但理论上你可以在SQL中编写一个编译器吗?乍一看,在我看来,虽然对于许多类型的问题非常麻烦,但我觉得它是完整的.
如果它没有完成,那么它需要什么呢?
注意:我不想做任何事情,比如在SQL中编写编译器,我知道这样做会很愚蠢,所以如果我们能够避免讨论,我会很感激.
这个问题与前面的问题有关:为什么从关系数据库中不支持的存储过程中进行选择?
在SQL Server,则无法执行连接(或从选择)存储过程(请注意:一个存储过程是从一个完全不同的功能(在SQL Server术语表值函数) -一个功能,你知道列在设计时返回,但是使用一个过程,直到运行时才知道要返回的特定列).
对于SQL Server,确实存在"DBA通常不允许"的方法,可以实现这样的连接:OPENROWSET
所以问题是:
PostgreSQL可以在两个程序之间执行连接,直到运行时才能知道这些列吗?
它可以做同样的事情,除了使用驻留在外部第三方数据库中的存储过程(可能通过外部数据包装器或其他一些机制)?