sql server如何创建语言辅助函数--

sql server如何创建语言辅助函数--

ID:9508752

大小:62.00 KB

页数:7页

时间:2018-05-01

sql server如何创建语言辅助函数--_第1页
sql server如何创建语言辅助函数--_第2页
sql server如何创建语言辅助函数--_第3页
sql server如何创建语言辅助函数--_第4页
sql server如何创建语言辅助函数--_第5页
资源描述:

《sql server如何创建语言辅助函数--》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、Sqlserver如何创建语言辅助函数>>  在现在这样一个全球化环境中,因为在不同的语言中有很多不同的语法规则,所以以前很多简单的任务现在都变得很困难。你可以将一门特定的语言分成一组语法规则和针对这些规则的异常(以及一个基本词语),从而将这些任务一般化。在一些编程语言(比如Perl和Java)中,有一些公共域(domain)模块可以用来对文本完成语言转换。  下面给出一个稍微简单一点儿的例子,假设我们要将一个数字转换成其拼写版本(例如需要填写支票和法律合同)。这个诀窍在Oracle出现的早期已经有了,一般都以如下方式使用:selectto_char(to_date(12345,

2、'J'),'Jsp')fromdual;    Tdual;    FifthMayo  在为大多数语言生成数字时涉及的语法实际上相当简单。主体工作包括收集所有不同的语法规则并建立起足够的规则来生成正确的语法模式。(现在我将回避涉及到匹配数字和性别的问题。)  首先,我将创建两个表:第一个表保存基本的单词和异常,第二个表保存用于生成文本的一些简单的模板模式。如果在第一个表中有数字,那么我的语言函数就返回那个文本。对于其它每个数字,我将试图在一系列模式中匹配它,并应用一个模板来生成正确的文本。createtablenum  integer,    a

3、rykey(lang,num)  );    createtablenumrules  (    lang  varchar2(2),    seq  integer,    p1   integer,    p2   integer,    temp0 varchar2(30),    temp  varchar2(30),    constraintnumrules_pkprimarykey(lang,seq)  );  下面是生成一个数字拼写版本所需的代码。这里我将按照基数来(比如1、2和3);而事实上,这些函数可以通过为每种语言列出更多异常和模式来生成序数(第1、第2、第

4、三)和复数版本。REM--createatableofbaseber)returnvarchar2;    functioncardinal(nnumber)returnvarchar2;  endgenber)returnvarchar2    is      l_num=n;      returnl_ber)returnvarchar2    is      pnumber;   --poplate      vnumber;   --lowords.word%type;    begin      ifn<0then        l_word:=get_word(

5、-1);        ifl_wordisnullthen          returnnull;        endif;        returnl_word

6、

7、''

8、

9、cardinal(-n);      endif;      l_word :=get_word(n);123下一页>>>>这篇文章来自..,。ifl_numrules        od(n,p);          ifrop0,'~2',cardinal(v));            endif;          else            ifv=0th

10、en              returnreplace(rop0,'~1',cardinal(n/p));            else              returnreplace(replace(nvl(rop,'~1~2'),                '~1',cardinal(n-v)),                '~2',cardinal(v));            endif;          endif;        endif;      endloop;      

11、return'NUMBERTOOLARGE';    endcardinal;  endgenillion和millionmillion代替billion和trillion(美国用法),在美国之外这两个短语通常是混淆的。这些数据对生成-999,999,999,999到999,999,999,999之间所有整数(包括零)的拼写版本已经足够了。REM--createatableofbaseber)returnvarchar2;    functioncardinal(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。