GUI sin

컬럼들이 블록으로 선택이 되면서,

일반적인 SELECT 등은 정상적으로 동작하는데, 자꾸 아래와 같은 메시지가 출력이 된다.


1
2
3
4
Unable to resolve column 'column name' less... (Ctrl+F1) 
 
Inspection info: This inspection performs unresolved SQL references check.
 
cs


해석하자면,


'열 이름'열을 확인할 수 없습니다 (Ctrl + F1).

검사 정보 :이 검사는 확인되지 않은 SQL 참조 검사를 수행합니다.


라는데, 이게 무슨 뜻인지 모르겠어서 확인해보니,


좌측의 Database 연결정보에서 적당한 스키마를 선택하지 않아서 발생하는 문제였다.

Database 연결에 따른 적절한 스키마를 전체 혹은 일부 선택해 주면 문제가 사라진다.


문제가 없는줄 알았는데, Ctrl 키와 함께 Table을 선택해서 바로이동 하는 등의 동작이 정상 동작 하지 않는다.

Comment +0

이곳에 무엇을 정리할까 다시 고민이 시작되었다.


여기저기 흩어져서 결국엔 하나도 똑바로 못하고 있는것 같아.


주성치, IT관련 정보는 각각의 카페를 만들어놓고


두번 작업할순 없잖아?


생각을 정리할 필요가 있을것 같아.


Comment +0


윈도우 10에서 파워빌더 (10버전 이하) 처럼 오래된 프로그램의 도움말 WinHlp32.exe ( *.hlp ) 을 이용하는 방법


1. 준비물 :

-. 도움말 실행 파일(자신의 윈도우의 버전에 맞는 x86/x64 파일을 사용하면 된다.

Windows10WinHlp32_x64.zip

Windows10WinHlp32_x86.zip


-. Windows 부팅CD, 또는 WindowsPE 등의 부팅 가능한 미디어(CD-ROM 또는 USB등등)


2. 적용 방법

위에서 다운로드 받은 파일을 적당한 위치에 압축을 해제한다. 두개의 파일이 나오는데 각각 설치 위치는 다음과 같다.

winhlp32.exe ===> C:\Windows

winhlp32.exe.mui ===> C:\Windows\ko-KR


덮어 씌우려고 하면 오류가 나오는데, 위에서 준비한 WindowsPE나 Window 설치CD(USB)로 부팅을 하면 접근이 가능하다. WindowsPE로 부팅을 해서 명령 프롬프트를 이용해도 되고, Windows설치 도중 첫 화면에서 Shift + F10 키를 눌러 명령 프롬프트를 이용할수도 있다.



Comment +0

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
--USE [TempTable]
--GO
/****** Object:  UserDefinedFunction [dbo].[fn_GetFileInfoInFullPathUsingXml]    Script Date: 2017-01-17 오후 1:43:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-----------------------------------------------------------------------------------------------------------
--  파일경로에서 파일정보 가져오기
--  파일경로 문자열에서 파일명,경로,확장자가지오기(filepath:경로,filename:파일명,extension:확장자)
--  예: SELECT 데이터베이스명.소유자명.fn_GetFileInfoInFullPathUsingXml('filename','test.xml','/')
--  SELECT  dbo.fn_GetFileInfoInFullPathUsingXml('filename','c:/dkdk/test.xml','/')
--  SELECT  dbo.fn_GetFileInfoInFullPathUsingXml('filepath','c:/dkdk/test.xml','/')
--  SELECT  dbo.fn_GetFileInfoInFullPathUsingXml('extension','c:/dkdk/test.xml','/')
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
-- 프로시저 생성
-----------------------------------------------------------------------------------------------------------
 
ALTER FUNCTION     [dbo].[fn_GetFileInfoInFullPathUsingXml]
(
    @iGubun         NVARCHAR(10),   -- filepath:경로,filename:파일명,extension:확장자
    @iFullPath      NVARCHAR(MAX),
    @iDelimiter     NVARCHAR(10)
)
RETURNS NVARCHAR(MAX)
AS
BEGIN
 
 
    DECLARE @wTblSplit AS TABLE
    (
         Seq        INT     IDENTITY(1,1),
         Fragment   NVARCHAR(MAX)
    )
    DECLARE @wFileInfo  NVARCHAR(MAX)
    DECLARE @wXml       XML
    DECLARE @wMax       INT
 
    SELECT  @wFileInfo  = ''
    SELECT  @wMax       = 0
    SET     @wXml       = N'' + REPLACE(@iFullPath, @iDelimiter,''+ ''
 
    INSERT  INTO @wTblSplit(Fragment)
    SELECT  r.value('.','NVARCHAR(MAX)') as item
    FROM    @wXml.nodes('//root/r') as records(r)
 
    SELECT  @wMax   = MAX(Seq) FROM @wTblSplit
    IF  @iGubun = 'filepath'
    BEGIN
        IF  @wMax   = 1
        BEGIN
            SELECT  @wFileInfo = '.'
        END
        ELSE
        BEGIN
            SELECT  @wFileInfo  = COALESCE(@wFileInfo + @iDelimiter + Fragment, Fragment)
            FROM    @wTblSplit
            WHERE   Seq         < @wMax
            ORDER BY Seq
 
            SELECT  @wFileInfo  = SUBSTRING(@wFileInfo,2,LEN(@wFileInfo)) + '/'
        END
    END
    ELSE IF @iGubun = 'filename'
    BEGIN
        SELECT  @wFileInfo = Fragment FROM @wTblSplit WHERE Seq = @wMax
        SELECT  @wFileInfo = SUBSTRING(@wFileInfo,1,CHARINDEX('.',@wFileInfo))
    END
    ELSE IF @iGubun = 'extension'
    BEGIN
        SELECT  @wFileInfo = Fragment FROM @wTblSplit WHERE Seq = @wMax
        SELECT  @wFileInfo = SUBSTRING(@wFileInfo,CHARINDEX('.',@wFileInfo)+1,LEN(@wFileInfo)-CHARINDEX('.',@wFileInfo))
    END
 
    RETURN LTRIM(RTRIM(@wFileInfo))
 
END
cs


11

http://rocabilly.tistory.com/88 에 있던걸 extension 부분만 수정했다.

aaa.bbb.ccc.jpg 처럼 dot('.')이 여러개일경우 오류가 발생할수 있다.

Comment +0

1
2
3
4
  SELECT A.TABLE_NAME, B.COMMENTS
    FROM ALL_TABLES A, ALL_TAB_COMMENTS B
   WHERE A.TABLE_NAME = B.TABLE_NAME AND A.TABLE_NAME LIKE :table_name || '%'
ORDER BY A.TABLE_NAME
cs

종종 사용하는데 쓸때마다 잊어서 메모해놓자.


Comment +0

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
  SELECT COLUMN_ID AS SEQ,
         (SELECT NVL (D.POSITION, '')
            FROM ALL_CONS_COLUMNS D, all_constraints E
           WHERE     D.OWNER = UPPER ( :user_name)
                 AND D.OWNER = A.OWNER
                 AND D.TABLE_NAME = A.TABLE_NAME
                 AND D.COLUMN_NAME = A.COLUMN_NAME
                 AND D.OWNER = E.OWNER
                 AND D.TABLE_NAME = E.TABLE_NAME
                 AND D.CONSTRAINT_NAME = E.CONSTRAINT_NAME
                 AND E.CONSTRAINT_TYPE = 'P')
            AS PK,
         (SELECT CASE WHEN D.POSITION IS NULL THEN '' ELSE 'V' END
            FROM ALL_CONS_COLUMNS D, all_constraints E
           WHERE     D.OWNER = UPPER ( :user_name)
                 AND D.OWNER = A.OWNER
                 AND D.TABLE_NAME = A.TABLE_NAME
                 AND D.COLUMN_NAME = A.COLUMN_NAME
                 AND D.OWNER = E.OWNER
                 AND D.TABLE_NAME = E.TABLE_NAME
                 AND D.CONSTRAINT_NAME = E.CONSTRAINT_NAME
                 AND E.CONSTRAINT_TYPE = 'R')
            AS FK,
         A.COLUMN_NAME AS COLUMN_ID,
         C.COMMENTS,
         A.DATA_TYPE,
         A.DATA_LENGTH,
         A.NULLABLE,
         A.DATA_DEFAULT
    FROM ALL_TAB_COLUMNS A, ALL_TAB_COMMENTS B, ALL_COL_COMMENTS C
   WHERE     A.OWNER = UPPER ( :user_name)
         AND B.OWNER = UPPER ( :user_name)
         AND C.OWNER = UPPER ( :user_name)
         AND A.OWNER = B.OWNER
         AND A.OWNER = C.OWNER
         AND A.TABLE_NAME = B.TABLE_NAME
         AND A.TABLE_NAME = C.TABLE_NAME
         AND A.COLUMN_NAME = C.COLUMN_NAME
         AND A.TABLE_NAME = UPPER ( :table_name)
ORDER BY 1
 
cs

MSSQL은 어떻게 할까나...


Comment +0

한글 위키 : http://bit.ly/28O4arH


영문 위키 : http://bit.ly/28O4red



이렇게 보니 반갑네.

Comment +0



Row changed between retrieve and update 이와같은 오류가 발생하는 이유는 여러가지가 있겠지만, 특히 dw의 Specify Update Properties와 밀접한 관계가 있고 대부분의 경우는 dw 컬럼의 data type의 길이와 db의 컬럼의 datatype의 길이가 다르기 때문일 가능성이 크다.



위의 화면을 보면 AF0502D Table이 Update/Delete가 발생하면 Updateable Columns의 컬럼들을 가지고 SQL의 Where 조건을 만들어주는데 remark 컬럼이 db의 varchar2(200)보다 작게 60으로 잡혀 있었다.


2018-12-17

어디선가 DataWindows의 Table을 Delete 하고,

해당 Table을 Update 하면 이런 문제가 발생될수도 있다.


Comment +0