2012-12-03 17 views
20

मेरा डेटाबेस पोस्टग्रेर्स 8. है। मुझे डेटा प्रकार को दूसरे में डालना होगा। इसका मतलब है, कॉलम डेटा प्रकार में से एक varchar है और इसे int में SELECT कथन में पोस्टग्रेस के साथ डालने की आवश्यकता है।पोस्टग्रेस डेटा प्रकार कास्ट

वर्तमान में, मुझे स्ट्रिंग मान मिलता है और इसे जावा में int में डाल दिया जाता है।
क्या ऐसा करने का कोई तरीका है? नमूना कोड की अत्यधिक सराहना की जाएगी।

+6

बस एफवाईआई, "पोस्टग्रेएसक्यूएल 8" कह रहा है "विंडोज 6" कहने जैसा थोड़ा सा है। विंडोज एक्सपी 5.1 (या x64 के लिए 5.2) है, Vista 6.0 है और विंडोज 7 6.1 है। वे सब बहुत अलग हैं! PostgreSQL के साथ यह वही है; PostgreSQL 8.0 और 8.4 के बीच 5 साल और एक बड़ा तकनीकी अंतर है, इसलिए कृपया हमेशा * पूर्ण * संस्करण निर्दिष्ट करें। –

उत्तर

41
cast(varchar_col AS int) -- SQL standard

या

varchar_col::int   -- Postgres syntax shorthand

शोध वाक्य रचना वेरिएंट वैध (लगभग) कहीं भी हैं। दूसरे के लिए अपवाद:

int4(varchar_col)   -- only works for some type names 
int '123'     -- must be an untyped, quoted string literal 

नोट कैसे मैं int4(varchar_col) लिखा है:

दो और वेरिएंट हैं। यह आंतरिक प्रकार का नाम है और इसके लिए एक फ़ंक्शन भी परिभाषित किया गया है। integer() या int() के रूप में काम नहीं करेगा।

मैनुअल here और here में विवरण।

integer के लिए मान्य होने के लिए, स्ट्रिंग में वैकल्पिक अग्रणी चिह्न (+/-) शामिल होना चाहिए, इसके बाद केवल अंक ही होंगे। अग्रणी/पिछली सफेद जगह को नजरअंदाज कर दिया जाता है।

+0

यह * काम नहीं करता है * * कॉलम * * चरित्र * डेटा प्रकार –

+0

@AbelMelquiadesCallejo: "यह" क्या है? डेटा उपरोक्त 'वर्ण' के लिए उपरोक्त सभी कार्य (जहां स्पष्ट रूप से नोट किया गया है)। स्ट्रिंग निश्चित रूप से एक वैध पूर्णांक होना चाहिए। –

संबंधित मुद्दे