table a
--------------
code
name
dept
birthdate
secret
data.csv文件包含此数据
name
dept
birthdate
我正在使用此代码使用SQLLOADER
将数据加载到它LOAD DATA
INFILE "data.csv"
APPEND INTO TABLE a;
FIELDS TERMINATED BY ',' optionally enclosed by '"'
TRAILING NULLCOLS
(code "getCode(:name,:dept)",name,dept,birthdate,secret "getSecret(getCode(:name,:dept),birthdate)")
所以这就像魅力它从我的getCode和getSecret函数中获取值,但是,我想引用先前计算的值(通过getCode),所以我不必在getSecret上嵌套函数,如下所示:
getSecret(**getCode(:name,:dept)**,birthdate)
我试过这样做:
getSecret(**:code**,birthdate)
但它从文件中获取原始值(意味着为null)而不是由函数计算(猜测因为它是在运行中),所以我的问题是,是否有办法避免以前的这些嵌套调用计算值,所以我不必松散性能一遍又一遍地重新计算相同的值(真正的表我使用它像10倍大,并且为这些先前计算的值嵌套了很多函数,所以我想这会减少性能)
任何帮助将不胜感激,谢谢!!
补体
很抱歉,我之前没有使用外部表(有点新的),我怎么能用这个表实现呢? (考虑我需要从我开发的函数获得的所有计算值,尝试触发器(SQL Loader, Trigger saturation?),杀死数据库......)
答案 0 :(得分:1)
我不知道这样做的方法。
如果你切换到使用外部表,你可以更自由地使用这种东西 - 常见的表表达式,利用子查询缓存,这种东西。