SQLServer 2005 에서 Oracle 10g 까지 의 링크 서버 를 만 들 고 이 구조 데이터베이스 데이터 변환 방안 을 실현 합 니 다.
그림 1 에서'링크 서버'를 선택 하고 오른쪽 단 추 를 누 르 면'새 링크 서버'를 선택 합 니 다.그림 2 참조.관련 매개 변 수 를 설정 합 니 다.2.관련 매개 변 수 를 설정 합 니 다
"일반"옵션 에"링크 서버 이름"을 입력 하고 인터페이스 에 접근 하여 선택 하 십시오.
"Microsoft OLE DB Provider for Oracle"항목.그 중에서 제품 이름,데이터 소스,액세스 인터페이스 문자열 은 설정 한 Oracle 클 라 이언 트 가 로 컬 에서 설정 한 net 서비스 이름 을 입력 하 십시오.그림 3 참조.
'보안'항목 에서 이 보안 컨 텍스트 를 사용 하여 연결 을 만 들 고 원 격 로그 인 사용자 와 비밀 번 호 를 입력 하 십시오.즉,원 격 Oracle 서버 에 로그 인 한 사용자 와 비밀 번 호 를 입력 하 십시오.그림 4 참조.3.이성 데이터베이스 접근 구문 형식
예 를 들 어 우 리 는 링크 서버 ORAD BCONN 을 만 들 었 고 Oracle 에서 HRSOFT 사용자 아래 에 표 WEBUSER 를 만 들 었 다.그러면 우리 의 SQL 문 구 는 다음 과 같다.
--오 라 클 테이블 에 있 는 데이터 비우 기
DELETE FROM ORADBCONN..HRSOFT.WEBUSER
--SQL Server 에 있 는 데 이 터 를 Oracle 에 쓴다
INSERT into ORADBCONN.. HRSOFT. WEBUSER
SELECT * FROM WEBUSER
만약 보고 가 성공 한다 면,우리 의 데 이 터 는 이미 Oracle 에 기록 되 었 을 것 이다.
SELECT 로*FROM ORADBCONN..HRSOFT.WEBUSER
Oracle 데이터베이스 에 데이터 가 있 는 지 확인 합 니 다.4.링크 서버 응용
A.Oracle 데이터 시트 를 조회 하 는 방식 1(이런 방식 으로 Oracle 과 SQLServer 의 데이터 형식 이 일치 하지 않 을 때 자주 오 류 를 보고 하고 속도 가 약간 느 립 니 다).
select * from [LINK2ORACLE]..[ORACLE_USER_NAME].TABLE_NAME;
서버'LINK2ORACLE'를 연결 하 는 OLE DB 액세스 인터페이스'MSDAORA'가 열 에 제공 하 는 메타 데이터 가 일치 하지 않 습 니 다.대상"CMCC"."OS2GIS_CELL'의 열'ISOPENED'(컴 파일 시 번호 20)는 컴 파일 시 130 의'DBTYPE'가 있 지만,실행 시 5 가 있다.
B.Oracle 데이터 시트 를 조회 하 는 방식 2(테스트 를 통 해 이런 방식 은 사용 하기에 원활 하고 잘못 보고 하지 않 으 며 속도 가 Oralce 에서 처럼 빠르다).
select * from openquery(LINK2ORACLE,'select * from OracleUserName.TableName')
openquery()를 시계 로 사용 할 수 있 습 니 다.
C.예 를 들 어(Oralce 사용자 HRSOFT 의 사용자 표 WEBUSER 를 SQLServer 2005 데이터베이스 에 가 져 오기):
select * into OS_GIS_WEBUSER from openquery(LINK2ORACLE,'select * from HRSOFT. WEBUSER)
D.더욱 편리 한 방식:동의어 생 성 을 통 해 편리 한 조회:
CREATE SYNONYM OS_GIS_CELL FOR [ORACLELK]..[CMCC].OS_GIS_CELL;
select * from os_gis_cell;
select * from os_gis_cell a where a.CellName is null;
주의:Oracle 부분 과 관련 된 SQL 문장,특히[ORACLELINK].[ORACLEUSER_NAME].TABLE_NAME 는 반드시 대문자 로 써 야 합 니 다.그렇지 않 으 면 비슷 한 오 류 를 보고 할 것 입 니 다.
메시지 7314,레벨 16,상태 1,첫 번 째 줄
서버"ORACLELK"를 연결 하 는 OLE DB 액세스 인터페이스"MSDAORA"는 표"CMCC"를 포함 하지 않 습 니 다."OS2gis_CELL""。이 표 가 존재 하지 않 거나 현재 사용자 가 이 표 에 접근 할 수 있 는 권한 이 없습니다.
설정 원본:
프로젝트 계획:
(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.2.6)(PORT=1521)))(CONNECT_DATA=(SID=sa)(SERVER=DEDICATED)))
ERP:
(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL = TCP)(HOST = 192.168.3.25)(PORT = 1528)))(CONNECT_DATA =(SID= TJTEST)))
(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL = TCP)(HOST = 192.168.3.25)(PORT = 1528)))(CONNECT_DATA =(SID= TJTEST)))
새로 만 든 I 의 세대 a:
delete from XBLD_Information
INSERT INTO XBLD_Information(job_name, num_layers, JB_PP1, JB_PC1, JB_PP2, JB_PC2, JB_PP3, JB_PC3, PP_PP1, PP_PC1, PP_PP2, PP_PC2, PP_PP3, PP_PC3, PP_PP4,PP_PC4,BM)
select * from openquery(INPLAN,'
select mjs15.job_name, mjs15.num_layers,mjs1.MM1 JB_PP1,mjs1.MC1 JB_PC1,mjs2.MM2 JB_PP2,mjs2.MC2 JB_PC2,mjs3.MM3 JB_PP3,mjs3.MC3 JB_PC3,mjs11.MM1 PP_PP1,mjs11.MC1 PP_PC1,mjs12.MM2 PP_PP2,mjs12.MC2 PP_PC2,mjs13.MM3 PP_PP3,mjs13.MC3 PP_PC3,mjs14.MM4 PP_PP4,mjs14.MC4 PP_PC4,Substr(mjs15.job_name,5,2) BM
from
(select mjl.job_name,
mjl.num_pcbs,
mjl.num_arrays,
mjl.num_panles_,
mjl.num_layers,
substr(mjl.op_size_y_string_,instr(mjl.op_size_y_string_,''='')+1,length(mjl.op_size_y_string_)-instr(mjl.op_size_y_string_,''='')+1) y_사이즈
substr(mjl.op_size_x_string_,instr(mjl.op_size_x_string_,''='')+1,length(mjl.op_size_x_string_)-instr(mjl.op_size_x_string_,''='')+1) x_size --거지
from tj.my_job_list mjl
) mjs15,
(select *
from
(select mjs.job_name,
decode(DENSE_RANK() over( partition by job_name order by material_name,material_count),1,material_name) MM1,
decode(DENSE_RANK() over( partition by job_name order by material_name,material_count),1,material_count) MC1
from tj.my_job_stackup_material_count mjs
where mjs.type_T=''Core''
)where MM1 is not null
) mjs1,
(select *
from
(select mjs.job_name,
decode(DENSE_RANK() over( partition by job_name order by material_name,material_count),2,material_name) MM2,
decode(DENSE_RANK() over( partition by job_name order by material_name,material_count),2,material_count)MC2
from tj.my_job_stackup_material_count mjs
where mjs.type_T=''Core''
) where MM2 is not null
) mjs2,
(select *
from
(select mjs.job_name,
decode(DENSE_RANK() over( partition by job_name order by material_name,material_count),3,material_name) MM3,
decode(DENSE_RANK() over( partition by job_name order by material_name,material_count),3,material_count)MC3
from tj.my_job_stackup_material_count mjs
where mjs.type_T=''Core''
) where MM3 is not null
) mjs3,
(select *
from
( select mjs.job_name,
decode(DENSE_RANK() over( partition by job_name order by material_name,material_count),1,material_name) MM1,
decode(DENSE_RANK() over( partition by job_name order by material_name,material_count),1,material_count) MC1
from tj.my_job_stackup_material_count mjs
where mjs.type_T=''Prepreg''
)where MM1 is not null
) mjs11,
(select *
from (
select mjs.job_name,
decode(DENSE_RANK() over( partition by job_name order by material_name,material_count),2,material_name) MM2,
decode(DENSE_RANK() over( partition by job_name order by material_name,material_count),2,material_count)MC2
from tj.my_job_stackup_material_count mjs
where mjs.type_T=''Prepreg''
)where MM2 is not null
) mjs12,
(select *
from
( select mjs.job_name,
decode(DENSE_RANK() over( partition by job_name order by material_name,material_count),3,material_name) MM3,
decode(DENSE_RANK() over( partition by job_name order by material_name,material_count),3,material_count)MC3
from tj.my_job_stackup_material_count mjs
where mjs.type_T=''Prepreg''
)
where MM3 is not null
) mjs13,
(select distinct *
from
( select mjs.job_name,
decode(DENSE_RANK() over( partition by job_name order by material_name,material_count),4,material_name) MM4,
decode(DENSE_RANK() over( partition by job_name order by material_name,material_count),4,material_count)MC4
from tj.my_job_stackup_material_count mjs
where mjs.type_T=''Prepreg''
) where MM4 is not null
) mjs14
where mjs15.job_name=mjs1.job_name(+)
and mjs15.job_name=mjs2.job_name(+)
and mjs15.job_name=mjs3.job_name(+)
and mjs15.job_name=mjs11.job_name(+)
and mjs15.job_name=mjs12.job_name(+)
and mjs15.job_name=mjs13.job_name(+)
and mjs15.job_name=mjs14.job_name(+)
')
UPDATE XBLD_Information SET BM=b.Describe from XBLD_Information a, XBLD_BM b where a.bm=b.id
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
java와 JSON 데이터의 변환 실례 상세 설명java와 JSON 데이터의 변환 실례 상세 설명 JSON과 JAVA 데이터의 변환(JSON은 경량급 데이터 교환 형식으로 서버와 JavaScript의 상호작용에 매우 적합하다.) 코드에 이런 문장이 있는데, 백그라...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.