3
SQL UDF java程序(字符轉換問題的)餘按照說明在http://www.itjungle.com/mpo/mpo100903-story01.html'SQLSTATE 57017' 的在iSeries
的UDF看起來像這樣
CREATE FUNCTION re_Test(input VARCHAR(500),
regex VARCHAR(500))
RETURNS INTEGER
EXTERNAL NAME 'UDFs.re_Test'
LANGUAGE Java
PARAMETER STYLE Java
FENCED
NO SQL
RETURNS NULL ON NULL INPUT
SCRATCHPAD
DETERMINISTIC
而在UDFsthat Java方法正在叫這個樣子的
public static int re_Test(String input,
String regex) throws Exception {
// returns number of occurrences
Pattern pattern = Pattern.compile(regex);
Matcher matcher=pattern.matcher(input);
int noFound=0;
while (matcher.find())
noFound++;
return noFound;
}
如果我從SquirrelSQL
運行功能210select re_test('abcdeab','ab') from sysibm/sysdummy1
它工作正常,但是,如果我從AS/400 5020控制檯運行STRSQL我在作業日誌SQLSTATE 57017
我能夠通過運行CHGJOB並輸入37來解決這個問題得到這個錯誤而不是CCSID字段中的65535。
這是不可取的,因爲我每次登錄時都需要這樣做。
任何人都知道如何解決這個問題?
如果其他用戶使用該功能會怎麼樣?如果RPGLE程序使用該功能會怎樣?這是有點冒險的 – jax
是的,好點。我在想什麼? O_O – WarrenT