คำถามติดแท็ก oracle

ฐานข้อมูล Oracle ทุกเวอร์ชัน เพิ่มแท็กเฉพาะรุ่นเช่น oracle-11g-r2 หากบริบทนั้นสำคัญสำหรับคำถาม ห้ามใช้สำหรับผลิตภัณฑ์ Oracle เช่นแอปพลิเคชันหรือมิดเดิลแวร์หรือผลิตภัณฑ์ฐานข้อมูลอื่น ๆ ที่ Oracle เป็นเจ้าของเช่น MySQL หรือ BerkeleyDB

3
Pivot แถวในหลายคอลัมน์
ฉันมีอินสแตนซ์ SQL Server ที่มีเซิร์ฟเวอร์ที่เชื่อมโยงกับเซิร์ฟเวอร์ Oracle มีตารางบนเซิร์ฟเวอร์ Oracle ที่เรียกว่าPersonOptionsซึ่งมีข้อมูลต่อไปนี้: ╔══════════╦══════════╗ ║ PersonID ║ OptionID ║ ╠══════════╬══════════╣ ║ 1 ║ A ║ ║ 1 ║ B ║ ║ 2 ║ C ║ ║ 3 ║ B ║ ║ 4 ║ A ║ ║ 4 ║ C ║ ╚══════════╩══════════╝ ฉันต้องหมุนข้อมูลนั้นเพื่อผลลัพธ์คือ: ╔══════════╦═════════╦══════════╦══════════╗ ║ PersonID …

14
อินเตอร์เฟซ sqlplus ที่สะดวกสบาย?
ฉันพบว่าsqlplusอินเทอร์เฟซค่อนข้างล้าสมัย มันค่อนข้างดีที่จะมีคำสั่งหรือคำหลักบางคำในการกำจัด แต่ตัวอย่างเช่นไม่มีปุ่ม "ลูกศรขึ้น" สำหรับรายการประวัติก่อนหน้านี้ การเปลี่ยน / ขยายที่ดีมีไว้เพื่อsqlplusอะไร อาจเป็น GUI หรือดีกว่า (เพื่อให้มีประโยชน์ผ่าน SSH) อรรถประโยชน์บรรทัดคำสั่ง SQL * Plusเป็นเครื่องมือบรรทัดคำสั่งหลักในการทำงานกับฐานข้อมูล Oracle
21 oracle  tools  sqlplus 

2
กระทำจำเป็นหลังจากการดำเนินการ DML ในฟังก์ชั่น / ขั้นตอนหรือไม่?
ฉันสงสัยว่าถ้าจำเป็นต้องเขียนคอมมิทหลังจากใส่ / ลบ / อัพเดทในฟังก์ชั่น / ขั้นตอนหรือไม่ ตัวอย่าง: create or replace function test_fun return number is begin delete from a; return 0; end; หรือขั้นตอน create or replace procedure aud_clear_pro as begin delete from a; end; มันจำเป็นต้องกระทำหลังจากลบ? ไม่เข้าใจสถานการณ์ต่อไปนี้: ถ้าฉันเรียก function / procedure จากหน้าต่าง SQL มันต้องยอมรับ แต่ หากฉันกำหนดเวลาฟังก์ชั่น / ขั้นตอนโดยใช้ dbms_scheduler และเรียกใช้งานคำสั่งลบจะถูกส่งโดยอัตโนมัติ …

2
ความแตกต่างระหว่าง GROUP BY B, A และ GROUP BY COALESCE (B, A)
ฉันสับสนตัวเองมาก มีใครบางคนกรุณาอธิบายภายใต้สถานการณ์ที่ฉันต้องการใช้ GROUP BY COALESCE ฉันเดาว่าฉันจะใช้มันถ้าฉันต้องการจัดกลุ่มชุดข้อมูลตามคอลัมน์ B แบบมีเงื่อนไข (ถ้า B ไม่ใช่โมฆะ) และคอลัมน์ A เป็นอย่างอื่น เสียงนั้นใช่ไหม
20 oracle  query 

2
จะจับและจัดการข้อยกเว้นเฉพาะของ Oracle ได้อย่างไร
จากนี้และนี่ฉันเดาว่าจะไม่มีข้อยกเว้นของระบบที่กำหนดชื่อไว้ล่วงหน้าสำหรับ ORA-00955 ฉันจะเขียนสิ่งต่อไปนี้เพื่อดักจับข้อผิดพลาด ORA-00955 เท่านั้นได้อย่างไร begin EXECUTE IMMEDIATE 'CREATE SEQUENCE S_TEST START WITH 1 INCREMENT BY 1'; exception when OTHERS then Null; end; BTW มีไวยากรณ์ใดที่จะตรวจจับข้อผิดพลาดโดยเพียงแค่ระบุรหัสข้อผิดพลาดหรือไม่?
20 oracle  exception 

2
ดัชนีเทียบกับพาร์ติชัน
เหตุใดจึงไม่สามารถปรับปรุงประสิทธิภาพด้วยดัชนีเท่านั้นดังนั้นเทคนิคอื่น ๆ เช่นการแบ่งพาร์ติชันตารางจึงมีความจำเป็น? คำถามนั้นเกี่ยวกับประสิทธิภาพแน่นอนว่าพาร์ทิชันที่แตกต่างกันสามารถใส่ลงในพื้นที่ตารางที่แตกต่างกันซึ่งมีเอฟเฟกต์อื่น ๆ ที่ไม่สามารถทำได้ด้วยดัชนี หรือกล่าวอีกนัยหนึ่งคือประสิทธิภาพที่ชาญฉลาด: เป็นไปได้หรือไม่ที่จะปรับปรุงประสิทธิภาพเดียวกันด้วยดัชนีเช่นเดียวกับการแบ่งพาร์ติชันของตาราง?

3
อะไรคือความแตกต่างระหว่างประเภทข้อมูล VARCHAR ของ Oracle และ VARCHAR2
เมื่อโอนย้ายตารางที่มาจาก DBMS อื่นไปยัง Oracle หนึ่งในภารกิจมาตรฐานคือการแทนที่VARCHAR(n)ฟิลด์ทั้งหมดด้วยVARCHAR2(n)ฟิลด์ (ระบุ n <= 4000) เหตุใด Oracle จึงเรียกประเภทข้อมูลนี้VARCHAR2และไม่VARCHARเหมือนกับ DBMS อื่น ๆ
19 oracle  datatypes 

9
เครื่องมือในการตรวจสอบประสิทธิภาพฐานข้อมูล Oracle ใน Standard Edition [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับผู้ดูแลฐานข้อมูล Exchange Exchange ปิดให้บริการใน2 ปีที่ผ่านมา นี่คือสิ่งที่ฉันกำลังมองหา: ใช้งานได้กับ Standard Edition เช่นไม่มีชุดวินิจฉัย ให้ข้อมูลประสิทธิภาพทั้งในปัจจุบันและในอดีต ภาพที่ดีสำหรับการมองเห็นแนวโน้มและการนำเสนอที่ง่ายต่อการจัดการ หากคุณใช้เครื่องมือนี้ฉันจะสนใจในข้อดีและข้อเสียที่คุณค้นพบ ฉันสามารถสร้างรายการขึ้นมาได้ แต่ความเข้าใจที่ลึกซึ้งเกี่ยวกับการใช้เครื่องมือมีค่ามากกว่า

4
SSD ที่มี Oracle
เราได้พิจารณาถึงการใช้ SSD กับ Oracle เพื่อเร่งความเร็วในการโยกย้ายการทดสอบของเรา ขณะนี้ใช้เวลา 12-18 ชั่วโมงในการดำเนินการย้ายข้อมูลให้เสร็จสิ้นโดยขึ้นอยู่กับปริมาณของข้อมูล เรามีกล่องลินุกซ์ราคาถูกจำนวนหนึ่งที่เราใช้สำหรับการรันและวิเคราะห์ต่างๆ ราคาของ SSD โดยตรงจาก Dell นั้นเป็นสิ่งต้องห้าม ฉันสงสัยว่าใครมีประสบการณ์ในการใช้ SSD ของผู้บริโภค (เช่น Crucial / Micron) ฉันรู้ว่าการสนับสนุน TRIM จะเป็นปัญหาใน Linux (โดยใช้ Centos) มีใครใช้มันใน Windows 7 เพื่อตอบโต้เรื่องนี้หรือไม่?

6
Oracle สร้างไดอะแกรม ER และพจนานุกรมข้อมูล
ฉันยังใหม่กับฐานข้อมูล Oracle และต้องการพัฒนาพจนานุกรมข้อมูลและไดอะแกรม ER สำหรับฐานข้อมูลที่มีอยู่ของเรา คุณมีเคล็ดลับสคริปต์เครื่องมือในการทำเช่นนั้นหรือไม่?

3
มีจุดใดบ้างในการลดขนาดคอลัมน์ VARCHAR?
Googling แถว ๆนั้นดูเหมือนว่าจะมีการรายงานแบบผสมไม่ว่าขนาดของVARCHAR2คอลัมน์ใน Oracle จะส่งผลกระทบต่อประสิทธิภาพหรือไม่ ฉันต้องการที่จะให้คำถามVARCHARขนาดบิดเล็กน้อยและหวังว่าจะได้รับข้อมูลเชิงลึกในนี้: ที่กำหนด (หลาย) สาขาข้อความอิสระ ( ไม่ได้สิ่งที่สั้น ๆ เช่นชื่อ) ที่คุณต้องการในการจัดเก็บใน (Oracle) ฐานข้อมูลจะมีจุดใด (WRT. ประสิทธิภาพหรืออื่น ๆ ) ในไม่ maxing ออกVARCHARความจุ ( VARCHAR2(4000)ใน Oracle) แต่เลือก ค่าที่น้อยกว่าเช่น 1024 หรือ 512 เพราะนั่นน่าจะเพียงพอใน 98% ของคดีอยู่แล้ว

4
ฉันจะยกเลิกการโหลดตารางฐานข้อมูล Oracle เป็นไฟล์ csv ได้อย่างไร
ฉันต้องการดึงข้อมูลบางอย่างจากฐานข้อมูล Oracle 11g รีลีส 1 และจัดให้เป็นไฟล์ CSV ตั้งแต่หนึ่งไฟล์ขึ้นไป ข้อมูลอยู่ในหลายตารางและ / หรือมุมมอง ทั้งหมดนี้ควรทำงานผ่านบรรทัดคำสั่ง อะไรจะเป็นวิธีที่ดีที่สุดในการทำสิ่งนี้?

2
ฉันจะประกาศและใช้ตัวแปรใน Oracle ได้อย่างไร
ทักษะหลักของฉันอยู่กับ SQL Server แต่ฉันถูกขอให้ทำการปรับแต่งแบบสอบถามของ Oracle ฉันได้เขียน SQL ต่อไปนี้: declare @startDate int select @startDate = 20110501 และฉันได้รับข้อผิดพลาดนี้: declare @startDate int select @startDate = 20110501 Error at line 1 ORA-06550: line 1, column 9: PLS-00103: Encountered the symbol "@" when expecting one of the following: begin function package pragma procedure subtype type …

6
วิธีที่ดีที่สุดในการลบชุดระเบียนที่มีขนาดใหญ่มากใน Oracle
ฉันจัดการแอปพลิเคชันที่มีข้อมูลขนาดใหญ่มาก (เกือบ 1TB ของข้อมูลมีมากกว่า 500 ล้านแถวในหนึ่งตาราง) ฐานข้อมูล Oracle ส่วนหลัง ฐานข้อมูลไม่ได้ทำอะไรเลย (ไม่มี SProcs, ไม่มีทริกเกอร์หรืออะไรเลย) เป็นเพียงแหล่งข้อมูล ทุกเดือนเราจะต้องล้างเร็กคอร์ดจากตารางหลักสองตาราง เกณฑ์สำหรับการกำจัดแตกต่างกันไปและเป็นการรวมกันของอายุแถวและฟิลด์สถานะสองสาม โดยทั่วไปแล้วเราจะกวาดล้างระหว่าง 10 ถึง 50 ล้านแถวต่อเดือน (เราเพิ่มประมาณ 3-5 ล้านแถวต่อสัปดาห์ผ่านการนำเข้า) ขณะนี้เราต้องทำการลบแบบกลุ่มประมาณ 50,000 แถว (เช่นลบ 50000, comit, ลบ 50000, กระทำ, ทำซ้ำ) การพยายามลบชุดข้อมูลทั้งหมดในครั้งเดียวทำให้ฐานข้อมูลไม่ตอบสนองประมาณหนึ่งชั่วโมง (ขึ้นอยู่กับจำนวนแถว) การลบแถวในแบทช์เช่นนี้จะหยาบมากในระบบและโดยทั่วไปเราจะต้องทำมัน "ตามเวลาที่อนุญาต" ในช่วงเวลาหนึ่งสัปดาห์ การอนุญาตให้สคริปต์รันอย่างต่อเนื่องอาจส่งผลให้ประสิทธิภาพการทำงานลดลงซึ่งผู้ใช้ไม่สามารถยอมรับได้ ฉันเชื่อว่าการลบแบทช์ประเภทนี้จะลดประสิทธิภาพของดัชนีและมีผลกระทบอื่น ๆ ซึ่งในที่สุดจะทำให้ประสิทธิภาพของฐานข้อมูลลดลง มี 34 ดัชนีในตารางเดียวและขนาดข้อมูลดัชนีใหญ่กว่าข้อมูลจริง นี่คือสคริปต์ที่หนึ่งในพนักงานไอทีของเราใช้ในการล้างข้อมูลนี้: BEGIN LOOP delete …

3
ฉันสามารถเปลี่ยน SID ของฐานข้อมูล Oracle ได้หรือไม่
เซิร์ฟเวอร์คือ Oracle Database 11g Enterprise Edition รีลีส 11.1.0.7.0 - 64 บิต มีวิธีที่ง่ายและรวดเร็วในการเปลี่ยน SID ของฐานข้อมูลทดสอบบนเซิร์ฟเวอร์หรือไม่ การปล่อย & สร้างฐานข้อมูลใหม่เป็นตัวเลือกสำหรับฉัน แต่ฉันกำลังมองหาบางสิ่งที่ต้องใช้เวลาน้อยลง ตัวเลือกอื่น ๆ ในการกำหนดชื่อในไคลเอนต์ tnsnames.ora มีแนวโน้มที่จะเกิดข้อผิดพลาดเนื่องจากไม่ได้รับการดูแลจากส่วนกลาง เมื่อเทียบกับเวลาที่จะวางและสร้างฐานข้อมูลบน SQL-Server ระยะเวลาที่ต้องใช้ในการสร้างฐานข้อมูล Oracle ใหม่นั้นมากเกินความจำเป็น เพิ่มเติมเกี่ยวกับ SQL-Server คุณสามารถเปลี่ยนชื่ออินสแตนซ์ของ SQL-Server ได้ [โดยปกติคุณจะเปลี่ยนชื่อเซิร์ฟเวอร์ที่ SQL-Server กำลังทำงานและมีปัญหาบางอย่างจนกว่าคุณจะเปลี่ยนชื่อเซิร์ฟเวอร์ด้วย]

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.