स्ट्रिंग कॉलम मूल्यों के लिए ओरेकल स्वचालित String2number रूपांतरण करता है ! हालाँकि, SQL में शाब्दिक तुलना के लिए, इनपुट को स्ट्रिंग के रूप में स्पष्ट रूप से सीमांकित किया जाना चाहिए: विपरीत रूपांतरण संख्या 2String स्वचालित रूप से नहीं किया जाता है, SQL- क्वेरी स्तर पर नहीं।
मेरे पास यह प्रश्न था:
select max(acc_num) from ACCOUNTS where acc_num between 1001000 and 1001999;
कि एक समस्या प्रस्तुत की: Error: ORA-01722: invalid number
मैंने अभी "संख्यात्मक" मानों को घेर लिया है , उन्हें 'स्ट्रिंग्स' बनाने के लिए, बस उन्हें स्पष्ट रूप से सीमांकित किया गया है :
select max(acc_num) from ACCOUNTS where acc_num between '1001000' and '1001999';
... और voilà: यह अपेक्षित परिणाम देता है।
संपादित करें:
और वास्तव में: acc_num
मेरी तालिका में कर्नल को परिभाषित किया गया है String
। हालांकि संख्यात्मक नहीं, invalid number
रिपोर्ट किया गया था। और स्ट्रिंग-संख्याओं के स्पष्ट परिसीमन ने समस्या को हल कर दिया।
दूसरी ओर, ओरेकल स्ट्रिंग्स को संख्याओं के रूप में मान सकता है । अतः संख्यात्मक कार्यों / कार्यों को स्ट्रिंग्स पर लागू किया जा सकता है, और ये प्रश्न काम करते हैं:
टेबल से अधिकतम (string_column) चुनें ;
TABLE से string_column चुनें जहां '2' और 'z' के बीच string_column ;
TABLE से string_column चुनें जहां string_column > '1';
TABLE से string_column चुनें जहां string_column <= 'b';
CUSTOMER
? आपने केवल आधी जानकारी दी है।