好的,所以我知道有人问过这个问题。我读到的所有内容都是“嗯..你可以使用动态 DSL 来做到这一点,但不要这样做”我的问题是为什么。我还是新手,所以我正在学习,所以请耐心等待,但这就是我正在做的事情。我想使用存储过程来创建动态视图(但不是临时表),该视图有两个日期,用于建立开始日期和结束日期。它看起来像这样:
create or replace view MyView as
SELECT
A.COLUMN_A
FUNCTION1(to_date('2/10/2011','MM/DD/YYYY') TOTAL1,
FUNCTION2(to_date('2/15/2011','MM/DD/YYYY') TOTAL2
FROM TABLE_A A;
然后使用该视图生成水晶报表所需的数据。问题是我们即将开始在另一种语言中使用这些相同的 sql 语句。(我们目前正在使用delphi,但要使用另一种语言(但我不知道另一种语言是什么))我想在存储过程中创建视图的原因是,因为a)视图是动态的,并且基于用户选择的日期范围和 b) 而不是必须以多种语言放入一些相当大的视图(由于日期范围选择的变化而必须即时创建)仅用于函数和参数的单行将需要通过。我读到的很多内容都说使用动态 SQL 创建视图很糟糕,但知道它已经是专门为动态用户创建的动态视图,有人看到这个问题吗?我之所以这样问,是因为我不想让自己陷入某种我无法摆脱的事情,因为我不想把我所有的头发都拔掉。