Я попытался сделать это и получил исключение:
Параметр типа таблицы '@MyDataType' должен иметь правильное имя типа.
Мне нужно было установить свойство «TypeName» SqlParameter:
parameter.TypeName = "MyDataType";
Забавно, но, согласно Википедии, код валюты "TRL" устарел (старый код турецкой лиры). Я не обновлялся до последней версии jdk (1.5.0_10), но
Currency curr = Currency.getInstance ("TRL");
Локаль trLocale = новый Локаль ("tr", "TR");
System.out.println (curr.getSymbol (trLocale));
Печать:
TL
Так что, возможно, напишите что-нибудь свое, чтобы сопоставить существующие коды с устаревшими кодами и настроить и проверить по мере необходимости.
В среднем, пока вы ждете на Java:
System.out.println(curr.getSymbol(trLocale).substring(1));
В Java 7 вы можете переопределить валюты в файле свойств. Если вы полагаетесь на символ ISO-4217, его можно указать / переопределить.
Воскрешение для дальнейшего использования:
Вы можете использовать DecimalFormatSymbols для изменения валюты в целях форматирования
Locale trLocale = new Locale("tr", "TR");
DecimalFormat decimalFormat = (DecimalFormat) DecimalFormat.getCurrencyInstance(trLocale);
DecimalFormatSymbols dfs = DecimalFormatSymbols.getInstance(trLocale);
dfs.setCurrencySymbol("TL");
decimalFormat.setDecimalFormatSymbols(dfs);
Или вы можете обратиться к SPI и подключить свой символ валюты (возможно, создав свой вариант страны, как new Locale("tr", "TR", "try")
). Для этого вы должны предоставить реализацию java.util.spi.CurrencyNameProvider
и зарегистрировать ее в механизме расширения Java. Посмотрите http://java.sun.com/javase/6/docs/api/java/util/spi/LocaleServiceProvider.html