Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle:अंग्रेजी के अलावा अन्य भाषा में संख्याओं को शब्दों में बदलें

यह एक अच्छी चाल है (जूलियन लेने के लिए जेएसपी प्रारूप और इसे वर्तनी दें)। मुझे एक आस्क टॉम लेख मिला जो अधिक विवरण देता है। लेकिन मूल रूप से जेएसपी प्रारूप केवल अंग्रेजी पर काम करेगा, लेकिन आप इसे एक समारोह में लपेट सकते हैं और अंग्रेजी को दूसरी भाषा में अनुवाद कर सकते हैं।

उदाहरण के लिए, टॉम का स्पेल_नंबर फंक्शन इस प्रकार है:

create or replace 
 function spell_number( p_number in number ) 
 return varchar2 
 as 
 type myArray is table of varchar2(255); 
 l_str myArray := myArray( '', 
 ' thousand ', ' million ', 
 ' billion ', ' trillion ', 
 ' quadrillion ', ' quintillion ', 
 ' sextillion ', ' septillion ', 
 ' octillion ', ' nonillion ', 
 ' decillion ', ' undecillion ', 
 ' duodecillion ' ); 

 l_num varchar2(50) default trunc( p_number ); 
 l_return varchar2(4000); 
 begin 
 for i in 1 .. l_str.count 
 loop 
 exit when l_num is null; 

 if ( substr(l_num, length(l_num)-2, 3) <> 0 ) 
 then 
 l_return := to_char( 
 to_date( 
 substr(l_num, length(l_num)-2, 3), 
 'J' ), 
 'Jsp' ) || l_str(i) || l_return; 
 end if; 
 l_num := substr( l_num, 1, length(l_num)-3 ); 
 end loop; 

 return l_return; 
 end; 
 /

और फ्रेंच के लिए एक संस्करण (जाहिरा तौर पर) कुछ फ्रेंच अनुवादों के साथ सिर्फ स्पेल_नंबर का उपयोग करता है:

create or replace 
function spell_number_french( p_number in number ) 
return varchar2 
as 
begin 
return replace( replace( replace( replace( replace( 
replace( replace( replace( replace( replace( 
replace( replace( replace( replace( replace( 
replace( replace( replace( replace( replace( 
replace( replace( replace( replace( replace( 
replace( replace( replace( replace( replace( 
replace( replace( replace( replace( replace( 
replace( replace( replace( replace( replace( 
replace( 
lower( spell_number( p_number )) 
, 'duodecillion', 'bidecillion' ) 
, 'quintillion' , 'cintillion' ) 
, 'billion' , 'milliard' ) 
, 'thousand' , 'mille' ) 
, 'hundred' , 'cent' ) 
, 'ninety' , 'quatre-vingt-dix') 
, 'eighty' , 'quatre-vingt' ) 
, 'seventy' , 'soixante-dix' ) 
, 'sixty' , 'soixante' ) 
, 'fifty' , 'cinquante' ) 
, 'forty' , 'quarante' ) 
, 'thirty' , 'trente' ) 
, 'twenty' , 'vingt' ) 
, 'nineteen' , 'dix-neuf' ) 
, 'eighteen' , 'dix-huit' ) 
, 'seventeen' , 'dix-sept' ) 
, 'sixteen' , 'seize' ) 
, 'fifteen' , 'quinze' ) 
, 'fourteen' , 'quatorze' ) 
, 'thirteen' , 'treize' ) 
, 'twelve' , 'douze' ) 
, 'eleven' , 'onze' ) 
, 'ten' , 'dix' ) 
, 'nine' , 'neuf' ) 
, 'eight' , 'huit' ) 
, 'seven' , 'sept' ) 
, 'five' , 'cinq' ) 
, 'four' , 'quatre' ) 
, 'three' , 'trois' ) 
, 'two' , 'deux' ) 
, 'one' , 'un' ) 
, 'dix-six' , 'seize' ) 
, 'dix-cinq' , 'quinze' ) 
, 'dix-quatre' , 'quatorze' ) 
, 'dix-trois' , 'treize' ) 
, 'dix-deux' , 'douze' ) 
, 'dix-un' , 'onze' ) 
, '-un ' , '-une ' ) 
, 'un cent' , 'cent' ) 
, 'un mille' , 'mille' ) 
, 'une' , 'un' ); 
end spell_number_french; 

अपनी पसंद की भाषा के समान कुछ करें। और अधिक विस्तृत चर्चा के लिए आस्क टॉम लिंक देखें।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. दी गई शर्त को संतुष्ट करने वाले कई में से एक पंक्ति को छोड़कर सभी पंक्तियों को कैसे अपडेट करें?

  2. डेटाबेस में XML डेटा को कैसे पढ़ें और स्टोर करें

  3. एसक्यूएल/एचक्यूएल जावा से पार्सिंग टेबल और कॉलम नाम

  4. एसक्यूएल फाइंडिंग पर्सन एंट्री में सबसे ज्यादा कुत्ते हैं

  5. Oracle डेटाबेस में VALUES-of बाउंड क्लॉज के साथ FORALL स्टेटमेंट