752
社区成员
发帖
与我相关
我的任务
分享
[DBMS_PROFILES]
Profiles=GMFCPD08
[Profile GMFCPD08]
DBMS=O10 Oracle10g (10.1.0)
Database=
UserId=
DatabasePassword=
LogId=mdmsidev
LogPassword=mdmspwd1!
ServerName=117.105.92.**
DBParm="Database='GMFCPD08'"
Lock=
Prompt=FALSE
AutoCommit=FALSE
global type gf_oracheck from function_object
end type
forward prototypes
global subroutine gf_oracheck ()
end prototypes
global subroutine gf_oracheck ();boolean lb_filecheck, lb_check
integer li_FileNum, li_count, li_pos, li_FileNum_copy
String ls_line
//Oracle Client TNSNAMES.ORA 파일 유무 체크
lb_filecheck = FileExists(GS_TNSNAME)
if Not lb_filecheck then return
//File Open(Read용과 Write용 두개를 Open)
li_FileNum = FileOpen(GS_TNSNAME, LineMode!)
li_FileNum_copy = FileOpen(GS_TNSNAME_COPY, LINEMODE!, WRITE!, LOCKREADWRITE!, REPLACE!)
li_count = 0
lb_check = false
do while(true)
if FileRead(li_FileNum , ls_line) = -100 then
exit
end if
if trim(UPPER(mid(ls_line, 1, 9))) = "GMFCPD08=" or trim(UPPER(mid(ls_line, 1, 10))) = "GMFCPD08 =" then //TNS검색
li_count = 1
else
if li_count > 0 and li_count < 7 then //TNS 6줄까지만 검색하여 IP를 변경한다.(다른 TNS를 수정할 수 있으므로)
li_count++
li_pos = Pos(ls_line, GS_OLD_IP_ADDR)
if li_pos > 0 then
ls_line = Replace(ls_line, li_pos, len(GS_OLD_IP_ADDR), GS_IP_ADDR)
lb_check = true
end if
end if
end if
FileWrite(li_FileNum_copy, ls_line)
loop
FileClose(li_FileNum)
FileClose(li_FileNum_copy)
//TNSNAME에 GMFCPD08이 없을 경우 마지막줄에 추가한다.
if li_count = 0 then
li_FileNum = FileOpen(GS_TNSNAME, LineMode!, Write!, LockReadWrite!, Append!)
// FileWrite(li_FileNum, "~r~nGMFCPD08 =~r~n" &
// + " (DESCRIPTION =~r~n" &
// + " (ADDRESS_LIST =~r~n" &
// + " (ADDRESS = (PROTOCOL = TCP)(HOST = measuring.gmdat.com)(PORT = 1521))~r~n" &
// + " )~r~n" &
// + " (CONNECT_DATA =~r~n" &
// + " (SID = GMFCPD08)~r~n" &
// + " (SERVER = DEDICATED)~r~n" &
// + " )~r~n" &
// + " )")
FileWrite(li_FileNum, "~r~nGMFCPD08 =~r~n" &
+ " (DESCRIPTION =~r~n" &
+ " (ADDRESS_LIST =~r~n" &
+ " (ADDRESS = (PROTOCOL = TCP)(HOST = 117.105.159.12)(PORT = 1525))~r~n" &
+ " )~r~n" &
+ " (CONNECT_DATA =~r~n" &
+ " (SID = GMFCPD08)~r~n" &
+ " (SERVER = DEDICATED)~r~n" &
+ " )~r~n" &
+ " )")
FileClose(li_FileNum)
else
if lb_check then
FileDelete(GS_TNSNAME) //기존 Tnsnames.ora파일 삭제
FileCopy(GS_TNSNAME_COPY, GS_TNSNAME, True) //복사본의 이름을 tnsnames.ora로 변경
end if
end if
FileDelete(GS_TNSNAME_COPY) //복사본을 삭제한다.
end subroutine