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

ऑरैकल एसक्यूएल के खंड में एक चर को कैसे पास किया जाए?

जैसा कि पवनरेड ने बताया, सबसे आसान तरीका - हालांकि जरूरी नहीं कि सबसे अच्छा हो - मूल्यों को स्वयं प्रक्षेपित करना है। आप यह नहीं कहते कि आपकी कॉलिंग भाषा क्या है, लेकिन कुछ इस तरह है:

sql = "SELECT something FROM whatever WHERE myColumn in (" + $1 + ")"

हालांकि, इसका मतलब यह है कि यह बहुत महत्वपूर्ण है कि आपने $ 1 में सभी मानों की पूर्व-जांच कर ली है ताकि यह सुनिश्चित हो सके कि वे या तो संख्याएं हैं, या ठीक से बच गए तार हैं, या जो कुछ भी आपको पास करने की आवश्यकता है लेकिन कच्चे मूल्य नहीं हो सकते हैं a उपयोगकर्ता, SQL इंजेक्शन से बचने के लिए।

दूसरा विकल्प इसे दो-चरणीय प्रक्रिया बनाना है। सबसे पहले, $1 से एक अस्थायी तालिका में मान डालें, फिर उन मानों को एक सबक्वेरी के रूप में चुनें:

WHERE myColumn in (SELECT temp_value FROM temp_table)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. INSERT सिंटैक्स का उपयोग करके Oracle तालिका में BLOB कॉलम में चित्र कैसे सम्मिलित करें?

  2. उत्परिवर्तित, ट्रिगर/फ़ंक्शन इसे नहीं देख सकता है- ट्रिगर के निष्पादन के दौरान त्रुटि

  3. oracle को pdo से, SID और INSTANCE_NAME से कनेक्ट करें

  4. Oracle:रिकॉर्ड डेटाटाइप से चुनें

  5. पूर्व परिभाषित मूल्यों के माध्यम से लूप