希望你今天过得愉快。我正在学习如何在 SQL-LOADER 上使用函数,我对此有疑问,假设我有这张表
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,触发器饱和度?),杀死数据库......)