문제

우리는 무엇보다도 좌표가 포함 된 테이블이 있습니다. 우리는 이것들을 두 개의 숫자 필드 (x 및 y)에 저장했지만 이제 이것을 sdo_geometry 필드로 대체했습니다. 거꾸로 호환성을 위해, 우리는 우리가하는 곳에서보기 (예전 테이블과 동일한 이름을 가진)를 만들었습니다.

view grest_pnt를 select ..., m.position.sdo_point.x x_coordinate, m.position.sdo_point.y y_coordinate from meas_pnt_tab m;

이것은 읽기와 쓰기 모두에서 작동하지만, 소수점 번호를보기에 쓸 때, 소수점은 사라집니다. 왜 그런지 알 수 없습니다. 아무도 도울 수 있습니까? 다음은 문제를 보여줍니다.

Meas_PNT_TAB M SET M.Position.sdo_point.x = 2.3 여기서 Meas_key = 1; mead_pnt_tab m에서 m.position.sdo_point.x를 선택하십시오. 여기서 meas_key = 1; -> x는 2.3입니다. 좋은!

Meas_PNT SET X_COORDINATE = 2.3 여기서 meas_key = 1; mead_pnt_tab m에서 m.position.sdo_point.x를 선택하십시오. 여기서 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