Sql server如何创建语言辅助函数
2007-05-18 09:38:05 来源:WEB开发网核心提示:在现在这样一个全球化环境中,因为在不同的语言中有很多不同的语法规则,Sql server如何创建语言辅助函数,所以以前很多简单的任务现在都变得很困难,你可以将一门特定的语言分成一组语法规则和针对这些规则的异常(以及一个基本词语),尝试生成西班牙语短语“Cinco de Mayo”:alter s
在现在这样一个全球化环境中,因为在不同的语言中有很多不同的语法规则,所以以前很多简单的任务现在都变得很困难。你可以将一门特定的语言分成一组语法规则和针对这些规则的异常(以及一个基本词语),从而将这些任务一般化。在一些编程语言(比如 Perl 和 Java)中,有一些公共域(domain)模块可以用来对文本完成语言转换。
下面给出一个稍微简单一点儿的例子,假设我们要将一个数字转换成其拼写版本(例如需要填写支票和法律合同)。这个诀窍在 Oracle 出现的早期已经有了,一般都以如下方式使用:
selectto_char(to_date(12345,'J'),'Jsp') from dual;
Twelve Thousand Three Hundred Forty-Five
TO_DATE 函数使用 Julian 日期格式将数字转换成一个日期。然后,TO_CHAR 接受一个日期参数并再次将其格式化为一个表示 Julian 日期的拼写数字版本的字符串。但是这个决窍有一些限制。
首先,在 Oracle 中 Julian 日期的最大有效值是9999年,所以日期的最大值只能取到5373484,而最小值是1或4712BC。而且,因为没有第“零”年,所以如果不额外使用一个 DECODE 或 CASE 语句就不可能生成文本“零”。第三个大的限制是它会忽略掉你的 NLS 设置。不管你使用的是哪种语言,数字总是以美国英语拼写出。一些简单的操作也存在这样的问题,比如拼写出天。例如,尝试生成西班牙语短语“Cinco de Mayo”:
alter session set nls_language = 'SPANISH';
select to_char(to_date('0505','MMDD'),'Ddspth Month') from dual;
Fifth Mayo
在为大多数语言生成数字时涉及的语法实际上相当简单。主体工作包括收集所有不同的语法规则并建立起足够的规则来生成正确的语法模式。(现在我将回避涉及到匹配数字和性别的问题。)
- ››如何检查oracle的归档空间是否满了
- ››如何在浏览器中打开PDF文件并实现预览的思路与代码...
- ››如何改Win7系统我的文档保存位置
- ››SQL Server 2008 R2 下如何清理数据库日志文件
- ››如何让ios app支持32位和64位
- ››如何删除Windows 8系统未知的账户
- ››如何提高win7系统的响应速度?
- ››sqlite 存取中文的解决方法
- ››SQL2005、2008、2000 清空删除日志
- ››如何避免iPhone应用中内存泄露
- ››如何转移Win 7系统C盘的用户文件夹
- ››SQL Server 2005和SQL Server 2000数据的相互导入...
更多精彩
赞助商链接