জাভা [বন্ধ] জন্য এসকিউএল পার্সার গ্রন্থাগার


141

এসকিউএল বিবৃতি পার্স করার জন্য কি কোনও মুক্ত-উত্স জাভা গ্রন্থাগার রয়েছে?

যদি সম্ভব হয় তবে এটি কাস্টমাইজযোগ্য বা যথেষ্ট নমনীয় হওয়া উচিত যা বিক্রেতা-নির্দিষ্ট সিনট্যাক্স (যেমন ওরাকল টেবিলস্পেস সংজ্ঞা বা মাইএসকিউএল এর লিমিটেড ধারা) পার্স করতে সক্ষম হবে।

যদি তা না হয় তবে এসকিউএল স্ট্যান্ডার্ডের সাথে কঠোরভাবে মেনে চলাও ঠিক।

আপডেট: আমার দুটি জিনিসের জন্য এটি দরকার:

  • একটি নন-এসকিউএল ডাটাবেসে একটি এসকিউএল ইন্টারফেস সরবরাহ করে (অভ্যন্তরীণ এপিআই কলগুলিতে ম্যাপিং)
  • এসকিউএলকে আসল ডাটাবেসে যাওয়ার আগে পুনরায় লেখা (উদাহরণস্বরূপ ওরাকল)

109
এই প্রশ্নটি কীভাবে গঠনমূলক নয়? আপনার কী হয়েছে, স্ট্যাকওভারফ্লো?
anton1980

11
এই প্রশ্নটি আবার খোলা উচিত। এছাড়াও পাওয়া foundationdb.github.io/sql-parser
kervin

2
এটি অফ-টপিক - লাইব্রেরি, সরঞ্জাম, টিউটোরিয়াল এবং অন্যান্য অফ-সাইট রিসোর্সের জন্য অনুরোধগুলি স্ট্যাক-ওভারফ্লোয়ের জন্য অন-টপিক হিসাবে বিবেচিত নয়।
টবি স্পিড 10

আমি মনে করি এটি অন্য একটি এসই সাইটে জিজ্ঞাসা করা উচিত
পিটারচাউলা

4
আমি মনে করি এই প্রশ্নটি গঠনমূলক !!
ক্যাসুয়ালেট

উত্তর:


51

এএনটিএলআর 3 এ একটি এএনএসআই এসকিউএল ব্যাকরণ উপলব্ধ। আপনি নিজের পার্সার তৈরি করতে এটি ব্যবহার করতে পারেন।

এএনটিএলআর 4 এর একটি এসকিউএল ব্যাকরণ রয়েছে


5
আপনি যখন নিজের পার্সার জেনারেটর বাস্তবায়ন করতে পারেন তখন কেন এএনটিএলআর ব্যবহার করবেন?
আইএডাপ্টার

127
আপনি যখন এএনটিএলআর ব্যবহার করতে পারেন তখন কেন নিজের পার্সার জেনারেটর তৈরি করবেন?
duffymo

এই প্রশ্নগুলির পার্স করার জন্য কীভাবে কোনও অ্যান্টাল এসকিউএল ব্যাকরণ ব্যবহার করতে পারে তার কোনও লিঙ্ক? আমি কিছু পিএল / এসকিউএল পার্সার পাশাপাশি লেক্সারস এবং পার্সার্সের ব্যাকরণ দেখেছি তবে কীভাবে এটি ব্যবহার করতে হয় তা অনুধাবন করতে অক্ষম। কোন লিঙ্ক প্রশংসা করবে।
অভিষেক

আপনি ব্যাকরণটি এএনটিএলআরকে খাওয়ান, যা লেক্সার / পার্সার ক্লাসগুলি বাদ দেয় যা আপনি পরে সংকলন করে চালাবেন। আমি যে উত্সটি সবচেয়ে ভালভাবে ভাবতে পারি তা
হ'ল এএনটিএলআর

আমরা এখন এএনটিএলআর 4-এ আছি। সম্ভবত পুরানো ব্যাকরণগুলি নতুন সংস্করণে চলে না।
ডাফাইমো

34
  • JSqlParser
  • প্রেস্টোর পার্সার এএনটিএলআর 4 ব্যবহার করে লেখা এবং এতে পার্সার থেকে তৈরি নিজের অপরিবর্তনীয় এএসটি ক্লাস রয়েছে। এএসটিতে একটি দর্শনার্থী এবং সুন্দর প্রিন্টার রয়েছে।

প্রেস্টোর জন্য আমার একটি প্রশ্ন আছে, যদি আমার কাছে বিবৃতি বিবৃতি থাকে = এসকিউএলপএআরএসএআর.সি। স্টেটমেন্ট (কোয়েরি); কীভাবে আমি কোয়েরি বডি পেতে পারি, যেমন নির্বাচন করুন, কোথা থেকে, কোথায় ইত্যাদি মানগুলি পেতে পারি?
কোয়ার্ক

বিবৃতি একটি বেস শ্রেণি। একটি নির্বাচন বিবৃতি কোয়েরি টাইপ হবে। এটিতে একটি কোয়েরিবডি রয়েছে যা সাবক্লাসের ক্যোরিস্পেসিফিকেশন রয়েছে। কাঠামোটি ইউনিয়ন, সারণী, মূল্য, সেট অপারেশন ইত্যাদি সমর্থন করার জন্য আপনি যতটা আশা করতে পারেন তার চেয়ে জটিল more কীভাবে গাছটি হাঁটতে হয় তার উদাহরণের জন্য স্কেলফর্মেটরটি দেখুন।
ডেভিড ফিলিপস

প্রেস্টো ব্যবহার করে কোনও প্রদত্ত ক্যোয়ারী থেকে কোয়েরি ট্রি কাঠামো পাওয়া সম্ভব হবে?
মক্কডম্যান.অবজেক্ট

আমি নিশ্চিত না আপনি কি জিজ্ঞাসা করছেন। আপনি আরও বিস্তারিতভাবে একটি নতুন প্রশ্ন তৈরি করতে পারেন?
ডেভিড ফিলিপস

9

পার্সার

আপনার যদি পার্সার প্রয়োজন হয় তবে অ্যাপাচি ডার্বির কোড বেসে পার্সার থাকা উচিত ।

বিক্রেতা-নির্দিষ্ট এসকিউএল সহ লেনদেন করা

আপনি jdbc সংযোগ অবজেক্টের .native () পদ্ধতিটি দেখতে চাইতে পারেন যা আপনি এটি বিক্রেতার নিরপেক্ষ প্রশ্নগুলি পাস করতে পারেন যা বিক্রেতার নির্দিষ্ট প্রশ্নগুলিতে পোস্টপ্রসেস হবে।


দেশীয় () পদ্ধতিটি আকর্ষণীয় দেখায়। এটি কীভাবে ব্যবহার করা যায় সে সম্পর্কে কোনও উদাহরণ রয়েছে? সেখানে কোন ধরণের রূপান্তর সম্ভব?
থিলো

@ থিলো যেমন এসকিউএল সার্ভার ২০১৪, নেটিএসকিউএল পদ্ধতি (এসকিউএল সার্ভার সংযোগ) : "এই পদ্ধতিটি বর্তমানে এসকিউএল সার্ভারের জন্য মাইক্রোসফ্ট জেডিবিসি ড্রাইভার দ্বারা সমর্থিত নয়।"
গেরোল্ড ব্রোজার

@ থিলো ওজেডিবিসি এর ওরাকল কানেকশন র‍্যাপার এটি সমর্থন করার মতো মনে হচ্ছে।
জেরোড ব্রোজার

7

জাভা এর জন্য জেনারেল এসকিউএল পার্সার মুক্ত উত্স নয়, তবে আপনি যা দেখছেন ঠিক তেমনই


1
জাভা +1 এর জন্য সেরা

github.com/porcelli/plsql-parser.git কেউ উল্লেখ না করে অবাক , এটি আমার দেখা সর্বাধিক বিস্তৃত
স্কয়ার

5

Zql চেষ্টা করুন


4
zql প্রাথমিক জিজ্ঞাসার জন্য ভাল তবে আপনি যখন যুক্ত হওয়া বিবৃতি সম্বলিত একটি কোয়েরিটি বিশ্লেষণ করার চেষ্টা করেন তখন তা ফুরিয়ে যায়। সুতরাং আমি এটি প্রস্তাব করি না
zato

3

হাইবারনেট স্কয়ার এবং এইচকিএল পার্সিংয়ের জন্য এএনটিএলআর ব্যবহার করে।

জেএসকিএলপি পার্সারও একটি ভাল বিকল্প .আরাকল পিএল / স্কোয়েল পার্স করার সময় এটিতে কিছু বাগ রয়েছে (বা কিছু বৈশিষ্ট্য প্রয়োগ করা হয়নি)। বিস্তারিত জানার জন্য এটির ফোরাম দেখুন।

সুতরাং আপনি যদি ওরাকল pl / sql পার্স করছেন, তবে এএনটিএলআর প্রস্তাবিত।


বিটিডব্লিউ, অ্যানল্টার বিএসডি এর অধীনে।
হান ঝেং

2

পার্স করা এসকিউএল দিয়ে আপনি কী করতে চান? আমি লেক্স / ইয়্যাক ( বিওয়াইএসিসি / জে , জাভা কাপ ) এর কয়েকটি জাভা প্রয়োগের প্রস্তাব দিতে পারি যা আপনি একটি বিদ্যমান এসকিউএল ব্যাকরণ ব্যবহার করতে পারেন।

যদি আপনি ফলাফলটি বিশ্লেষিত ব্যাকরণ দিয়ে আসলে কিছু করতে চান তবে আমি ডার্বির দিকে তাকানোর পরামর্শ দিতে পারি , জাভাতে লিখিত একটি ওপেন সোর্স এসকিউএল ডাটাবেস।


ডার্বিতে ব্যবহৃত এসকিউএল পার্সার কি স্বাধীন জেআর হিসাবে উপলব্ধ?
ল্লুইস মার্টিনেজ

1
আমি জানি না। আমি কখনই ডার্বির উত্সের দিকে তাকিনি।
থমাস জোন্স-লো

1
আমি এখন এই প্রশ্নের উত্তর জানি: না, ডার্বির এসকিউএল পার্সার আলাদা প্রকল্প নয়। ডার্বি ব্যতীত অন্য কোনও কিছুর জন্য এটি ব্যবহার করতে আপনাকে এটি আলাদা করে টানতে হবে।
থমাস জোন্স-লো

1
আমি 10 বছর পরে আবার ফিরে এসেছি :-)
লুয়ুইস মার্টিনেজ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.