문제

Oracle Forms10g는 Oracle Forms Builder와 함께 작동하는 이진 형식 (.fmb)에서 Oracle Forms 모듈을 텍스트 형식 (.fmt)으로 변환하는 도구를 제공합니다.

예를 들어, 호출 된 모듈을 작성하는 경우 myModule.fmb Oracle Forms Builder를 사용하여 호출합니다

frmcmp module=mymodule.fmb script=yes batch=yes logon=no

명령 줄에서 Oracle Forms Convertility는 이름이 지정된 파일을 만듭니다. myModule.fmt 파일에서 myModule.fmb. 이 텍스트 파일은 진정 된 트리거 및 프로그램 단위의 PL/SQL 코드를 제외하고 인간이 "읽을 수있다"고 생각합니다.

예를 들어, 이것은 CODIFIED PL/SQL 코드의 덩어리가있는 .fmt 파일의 스 니펫입니다.

DEFINE  F50P
BEGIN
   PP = 10
   PI = 3
   PN = 464
   PL = 1138
   PV = (BLONG)
<<"
00000049 00800000 00440000 00000000 00000031 0000000d 00000002 a0011519 
00002420 0000045e 001f0000 00165030 5f32335f 4f43545f 32303038 31365f33 
375f3039 00000006 42454749 4e0a0000 0042676f 5f626c6f 636b2820 27504149 
53455327 20293b0a 69662066 6f726d5f 73756363 65737320 7468656e 0a096578 
65637574 655f7175 6572793b 0a656e64 2069663b 00000005 0a454e44 3b000000 
1d574845 4e2d4e45 572d464f 524d2d49 4e535441 4e434520 28466f72 6d290000 

양식의 PL/SQL 코드를 추출 할 수 있도록 이런 종류의 파일을 해독하려고 시도한 적이 있습니까?

Oracle Forms Builder를 사용하여 해당 .FMB 파일을 수동으로 열고 각 파일에서 문자열을 검색하는 대신 많은 .fmt 파일의 PL/SQL 코드에서 문자열을 검색 할 수있는 것이 매우 유용합니다. 그들의.

감사!

도움이 되었습니까?

해결책

API와 함께이 프로세스의 시작 부분에서 작업하는 경우 FMT 버전보다 XML 버전을 생성하는 것이 좋습니다. FMT는 뒤로 호환성을 위해 보관 된 오래된 형식이며, 최근에 발표 된 양식과 같은 도구 -> Oracle Apex Converter는 XML을 원할 것입니다. 또한 읽기가 더 쉽습니다.

"Forms 10G Release 1"(9.0.4)에서 XML 변환기는 별도의 명령 줄 프로그램입니다. forms2xml. 나는 그것이 10.1에도 여전히 사실이라고 생각합니다

또한 XML은 읽고 해석하기가 더 쉽습니다.

다른 팁

바이트는 문자의 16 진수 값입니다. 예를 들어 : 4 번째 라인을 가져 와서 다음 Python 코드에 넣습니다.

[chr(x) for x in [0x53,0x45,0x53,0x27 ,0x20,0x29,0x3b,0x0a ,0x69,0x66,0x20,0x66 ,0x6f,0x72,0x6d,0x5f ,0x73,0x75,0x63,0x63 ,0x65,0x73,0x73,0x20 ,0x74,0x68,0x65,0x6e ,0x0a,0x09,0x65,0x78]]

다음 출력을 제공합니다.

['S', 'E', 'S', "'", ' ', ')', ';', '\n', 'i', 'f', ' ', 'f', 'o', 'r', 'm', '_', 's', 'u', 'c', 'c', 'e', 's', 's', ' ', 't', 'h', 'e', 'n', '\n', '\t', 'e', 'x']

인식 가능한 형태 PL/SQL입니다. 따라서 FMT 파일의 디렉토리를 가져 와서 검색 할 수있는 텍스트가있는 해당 파일을 생성하는 스크립트를 작성하는 것이 너무 많이 작동하지 않는 것 같습니다.
재미있게 보내세요!

Oracle은 9i를 형성하고 나중에는 프로그래밍 API가있어 정확하게 설명하는 것을 수행 할 수 있습니다. 이를 위해 양식 문서를 검토해야하지만 이진 문자열을 추출하는 것보다 빠를 수 있습니다.

기존 도구에 대한 비용을 기꺼이 지불하려는 경우 다음을 사용하십시오.

http://www.orcl-toolbox.com/

그들의 formsapi와 formstools를 사용하면 양식에 대한 추출, 차이, 변경 및 업데이트를 수행 할 수 있습니다.

에 따르면 이것 Page 저자는 16 진수를 ASCII 텍스트로 전환하는 Perl 스크립트를 가지고 있습니다 (그는 그에게 이메일을 보내라고 말하면 보낼 것입니다).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top