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

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

5
ไม่สามารถวางข้อ จำกัด ที่ไม่มีอยู่และไม่สามารถสร้างได้
ในขณะที่ทดสอบสคริปต์การย้ายข้อมูลบางส่วนด้วยสำเนาข้อมูลการผลิต (สคริปต์ทำงานได้ดีกับข้อมูลการพัฒนา) ฉันพบสถานการณ์ที่น่าสงสัย ข้อ จำกัด มีการเปลี่ยนแปลงดังนั้นฉันจึงออกคำสั่ง DROP + เพิ่ม: ALTER TABLE A_DUP_CALLE DROP CONSTRAINT A_DUP_CALLE_UK1; ALTER TABLE A_DUP_CALLE ADD CONSTRAINT A_DUP_CALLE_UK1 UNIQUE ( CONTROL_ID, CALLE_AYTO_DUPL ) ENABLE; คำสั่ง DROP ทำงานได้ดี แต่ ADD ล้มเหลว ตอนนี้ฉันเข้าสู่วงจรอุบาทว์ ฉันไม่สามารถวางข้อ จำกัด ได้เนื่องจากไม่มีอยู่ (การดรอปเริ่มต้นทำงานตามที่คาดไว้): ORA-02443: ไม่สามารถวางข้อ จำกัด - ข้อ จำกัด ที่ไม่มีอยู่ และฉันไม่สามารถสร้างได้เพราะมีชื่ออยู่แล้ว: ORA-00955: ชื่อนี้ถูกใช้โดยวัตถุที่มีอยู่แล้ว ฉันพิมพ์A_DUP_CALLE_UK1ลงในช่องค้นหาของนักพัฒนา SQL …

6
Oracle ให้ดาวน์โหลดฟรีหรือไม่
ฉันเป็นผู้พัฒนา Java และปัจจุบันฉันใช้ PostgreSQL เป็น RDBMS อย่างไรก็ตามฉันต้องการเรียนรู้ Oracle ด้วย ดังนั้นฉันสามารถดาวน์โหลด Oracle เวอร์ชันล่าสุด (ฉันคาดเดา 11g) ได้ฟรีหรือไม่ ฉันพบลิงค์นี้: ดาวน์โหลดOracle Database 11g รีลีส 2และดูเหมือนว่าสามารถดาวน์โหลดได้ อย่างไรก็ตามฉันรู้ว่า Oracle Server เป็นกรรมสิทธิ์ แล้วมันทำงานอย่างไร นอกจากนี้จะมี PL / SQL พร้อมดาวน์โหลด Oracle 11g หรือไม่
15 oracle  plsql 

2
“ ORA-01950: ไม่มีสิทธิ์บน tablespace 'SYSTEM'”: เกิดข้อผิดพลาดอะไร?
ก่อนหน้านี้ฉันสร้างผู้ใช้: SQL>create user suhail identified by password SQL>User created. SQL>Grant create session,create table to suhail; SQL>Grant Succeeded. แต่เมื่อฉันเข้าสู่ระบบเป็นsuhailและพยายามที่จะสร้างที่ฉันได้รับข้อผิดพลาดว่าtable ORA-01950: no privileges on tablespace 'SYSTEM'มันเกิดข้อผิดพลาดอะไร? ทำไมมันเกิดขึ้น? SQL> connect suhail Enter password: Connected. SQL> create table suhail_table(name char(10)); create table suhail_table(name char(10)) * ERROR at line 1: ORA-01950: no privileges on tablespace …

3
ทำไมฉันต้องเลือกจากตารางคู่
ผลงานในฐานข้อมูลความสัมพันธ์ที่สำคัญระบบการจัดการนี้ส่วนใหญ่มีแนวโน้มที่จะปรากฏใน StackOverflow / dba.stackexchange เป็นSQL Server, MySQL, PostgreSQL และ SQLite (WebSQL) select 'abc' abc, 1 def; มันไม่ทำงานบน Oracle ทำไมเราต้องเลือกจาก DUAL ใน Oracle มาตรฐาน ISO / ANSI สำหรับ SQL ต้องการข้อ FROM สำหรับคำสั่งSELECTหรือไม่? แก้ไข: ตามBacon Bitคำตอบของมันดูเหมือนจะต้องการโดยมาตรฐาน SQL ดังนั้นในความเป็นจริงเพราะชื่อ DUAL นั้นเป็นชื่อเรียกที่ผิดถ้าฉันจะสร้างตารางและตั้งชื่อ ATOM หรือ ONE เช่นcreate table one (atom int);.. select 'abc' abc, 1 …
15 oracle  select 

4
เรียกใช้งานสคริปต์ด้วย SQLPlus ที่มีช่องว่างเซมิโคลอนและเครื่องหมายสแลช
ในบางครั้งฉันจะได้รับสคริปต์ที่จะทำงานได้ดีใน SQL Developer หรือ Toad แต่ต้องการการปรับเปลี่ยนเพื่อให้สามารถเรียกใช้จาก SQL * Plus ได้สำเร็จ นี่เป็นตัวอย่างกรณีที่เลวร้ายที่สุดที่มีหลายประโยคคำสั่งที่มีบรรทัดว่างเซมิโคลอนและเครื่องหมายสแลช: INSERT INTO t1 VALUES ('a ; / '); INSERT INTO t1 VALUES ('b ; / '); DELETE FROM t1 WHERE c1 = 'c ; / '; ด้วยเหตุผลต่างๆคำสั่งเหล่านี้จำเป็นต้องเรียกใช้จาก SQL * Plus บรรทัดว่างจะแก้ไขได้ง่ายด้วย ... set sqlblanklines on ฉันทราบว่าsqlterminatorสามารถเปลี่ยนแปลงและ / หรือปิดการใช้งาน แต่ทั้งคู่จะต้องมีการปรับเปลี่ยนรหัสก่อนหน้านี้จะย้ายปัญหาโดยไม่ต้องแก้ไขและไม่สามารถแก้ไขปัญหาที่ฝังอยู่ในสแลชได้ …

2
คำว่า "การฉายภาพ" หมายถึงอะไรในแบบสอบถาม SQL (หรือดูคำจำกัดความ)
ในเอกสารของ Oracle The Query Optimizerภายใต้View Mergingฉันพบข้อมูลต่อไปนี้ การเพิ่มประสิทธิภาพการรวมมุมมองนำไปใช้กับมุมมองที่มีเฉพาะการเลือกการคาดการณ์และการรวม นั่นคือมุมมองที่ผสานได้ไม่มีตัวดำเนินการตั้งค่าฟังก์ชันการรวม DISTINCT GROUP BY เชื่อมต่อ BY และอื่น ๆ (เน้นที่เหมือง) แต่ฉันสามารถคาดเดาได้ว่าการฉายภาพตามความเป็นจริงหมายถึงอะไร
15 oracle  select 

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

3
ประเภทคอลัมน์ UUID ที่มีประสิทธิภาพที่สุดคืออะไร
สำหรับการจัดเก็บ UUID 128 บิตมีตัวเลือกการจัดเก็บหลายตัว: คอลัมน์ไบต์ [16] สองคอลัมน์ใหญ่ / ยาว (64 บิต) คอลัมน์ CHAR (36) - เลขฐานสิบหก 32 หลัก + 4 ขีด คอลัมน์เฉพาะฐานข้อมูล UUID หาก db สนับสนุน จากมุมมองของการจัดทำดัชนีซึ่งมีประสิทธิภาพมากที่สุด? หาก db ไม่รองรับ uuid ชนิดเฉพาะที่ 1, 2, 3 เป็นตัวเลือกที่ดีที่สุด?

2
เหตุใดจึงตัด DDL
ฉันมีคำถามสัมภาษณ์ซึ่งถูกถามระหว่างการสัมภาษณ์ ฉันตอบคำถาม แต่ผู้สัมภาษณ์ไม่เชื่อมั่นกับคำตอบของฉัน ดังนั้นทุกคนโปรดแก้ไขฉันด้วยความเข้าใจของฉัน Q. ทำไม Truncate เป็น DDL ที่ไหนในขณะที่ Delete เป็น DML ทั้งสองทำงานเกือบเหมือนกัน (ลบแถว) Ans เมื่อเราใช้ Truncate เราจะยกเลิกการจัดสรรพื้นที่ทั้งหมดที่จัดสรรโดยข้อมูลโดยไม่บันทึกลงใน undo-table-space แต่ในกรณีของการลบเราจะใส่ข้อมูลทั้งหมดในเลิกทำพื้นที่ตารางแล้วเราจะลบข้อมูลทั้งหมด กรุณาถ้าใครรู้คำตอบที่ดีที่สุดสำหรับข้างต้นโปรดอธิบาย
15 oracle  delete  ddl  truncate 

3
เลือกวันที่มีวันที่สูงสุดหรือวันที่ล่าสุด
นี่คือสองตาราง SCHOOL_STAFF SCHOOL_CODE + STAFF_TYPE_NAME + LAST_UPDATE_DATE_TIME + PERSON_ID ================================================================= ABE Principal 24-JAN-13 111222 ABE Principal 09-FEB-12 222111 คน PERSON_ID + NAME ================= 111222 ABC 222111 XYZ นี่คือแบบสอบถามออราเคิลของฉัน SELECT MAX(LAST_UPDATE_DATE_TIME) AS LAST_UPDATE, SCHOOL_CODE, PERSON_ID FROM SCHOOL_STAFF WHERE STAFF_TYPE_NAME='Principal' GROUP BY SCHOOL_CODE, PERSON_ID ORDER BY SCHOOL_CODE; ซึ่งให้ผลลัพธ์นี้ LAST_UPDATE SCHOOL_CODE PERSON_ID ===========+===========+========= …

1
ทำไม Oracle ไม่มี nolock
ใน MS SQL Server nolockสามารถใช้งานได้ตามวัตถุประสงค์ ทำไมเราไม่สามารถใช้มันใน Oracle และ plsql ได้?

2
Oracle PL / SQL มีรูทีน ASSERT มาตรฐานหรือไม่
ฉันต้องการใช้รูทีน ASSERT ที่ใช้งานได้คล้ายกับที่พบในภาษาอื่น ๆ เช่นโครงสร้าง (ไม่ว่าจะเป็นขั้นตอนไวยากรณ์ ... ) ASSERT( <condition>, <msg>) เช่นนั้นเมื่อ<condition>ผ่านในอาร์กิวเมนต์แรกเป็นเท็จข้อยกเว้นจะถูกยกขึ้นด้วย<msg>ข้อความอธิบายที่ระบุ ฉันรู้ว่านี่เป็นเรื่องเล็กน้อยที่จะต้องทำด้วยมือ แต่ฉันถามว่ามีมาตรฐานที่ได้รับจาก DBMS หรือไม่ ต้องเขียนหนึ่งของฉันเองหรือนำเข้าจากแพ็คเกจของบุคคลที่สามจะไม่สามารถทำได้เนื่องจากฉันต้องการให้พกพาได้อย่างสมบูรณ์และโปร่งใสสำหรับทุกโครงการที่ฉันกำลังทำอยู่

2
วิธีเพิ่มพื้นที่ว่างในดิสก์ บันทึก / ไดเรกทอรีใดบ้างที่ควรทำความสะอาด
ฉันต้องการเพิ่มพื้นที่ว่างในเครื่อง Linux ของฉัน ฉันเจาะลึกการใช้พื้นที่และพบว่าไดเรกทอรีต่อไปนี้มีขนาดใหญ่ /u01/app/11.2.0/grid/cv/log /u01/app/11.2.0/grid/log/diag/tnslsnr/r1n1/listener_scan2/alert (Contains xml files) /u01/app/11.2.0/grid/rdbms/audit(Contains .aud files) /home/oracle/oradiag_oracle/diag/clients/user_oracle/host_XXXXXXXXXX/alert(Contains xml files) /u01/app/oracle/diag/rdbms/crimesys/crimesys1/alert (Contains xml files) ฉันสามารถลบเนื้อหาจากไดเรกทอรีเหล่านี้ได้หรือไม่ หมายเหตุ: ฉันหมายถึงเนื้อหาไม่ใช่ไดเรกทอรี

5
PL / SQL: วิธีที่ดีที่สุดในการนับองค์ประกอบในอาร์เรย์?
รับสิ่งนี้: DECLARE TYPE T_ARRAY IS TABLE OF VARCHAR2(2000) INDEX BY BINARY_INTEGER; MY_ARRAY T_ARRAY; V_COUNT INTEGER; ฉันอยากจะทำ: BEGIN -- ... some code filling the MY_ARRAY array -- obviously COUNT_ELEMENTS() does not exists, this is what I'm looking for :-) V_COUNT := COUNT_ELEMENTS(MY_ARRAY); DBMS_OUTPUT.PUT_LINE('My array containts ' || V_COUNT || ' elements.'); …
14 oracle  plsql 


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