فقدان العشرية عند استخدام SDO_POINT أوراكل في طريقة عرض

StackOverflow https://stackoverflow.com/questions/1231839

  •  22-07-2019
  •  | 
  •  

سؤال

لدينا جدول يحتوي على إحداثيات، من بين أمور أخرى. كنا لتخزين هذه في حقلين رقم (x و y)، ولكن لدينا الآن استبدال هذا مع حقل SDO_GEOMETRY. من أجل التوافق الى الوراء، أنشأنا وجهة نظر (مع نفس الاسم حيث استخدم الجدول لديهم)، حيث نقوم به:

وإنشاء أو استبدال عرض meas_pnt كما اختر ....، m.position.SDO_POINT.X x_coordinate، m.position.SDO_POINT.Y y_coordinate من meas_pnt_tab م؛

وهذا يعمل لكل من القراءة والكتابة، ولكن عند كتابة الأرقام العشرية إلى العرض، يتم فقدان العشرية. لا أستطيع معرفة السبب. أي شخص يمكن أن تساعد؟ يوضح ما يلي المشكلة:

وتحديث meas_pnt_tab م وضع m.position.SDO_POINT.x = 2.3 حيث meas_key = 1؛ حدد m.position.SDO_POINT.X من meas_pnt_tab م حيث meas_key = 1؛ -> x هو 2.3. حسن!

وتحديث meas_pnt مجموعة x_coordinate = 2.3 حيث meas_key = 1؛ حدد m.position.SDO_POINT.X من meas_pnt_tab م حيث meas_key = 1؛ -> x هو 2

هل كانت مفيدة؟

المحلول

وأنا لا يمكن استنساخها خطأ الخاص بك. وهذا هو ما يحصل:

SQL> CREATE TABLE meas_pnt_tab (position sdo_point_type, meas_key NUMBER);

Table created
SQL> INSERT INTO meas_pnt_tab (position, meas_key) 
  2  VALUES (sdo_point_type(2.3,0,0), 1);

1 row inserted
SQL> SELECT m.position.X FROM meas_pnt_tab m WHERE meas_key=1;

POSITION.X
----------
       2,3
SQL> CREATE OR REPLACE VIEW meas_pnt AS
  2  SELECT m.position.X x_coordinate,
  3         m.position.Y y_coordinate,
  4         m.meas_key
  5    FROM meas_pnt_tab m;

View created
SQL> UPDATE meas_pnt SET x_coordinate = 2.4 WHERE meas_key=1;

1 row updated
SQL> SELECT m.position.X FROM meas_pnt_tab m WHERE meas_key=1;

POSITION.X
----------
       2,4

هل قمت بنشر الخاص CREATE البيانات؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top