2018년 8월 13일 월요일

한글2018 깔다 열받아... MSI 에러 라고 뜨면

한글 설치 실패해서 고객센터에 전화하다 열받아서..........

본 글은 한글과컴퓨터에 온라인 문의라는 곳에 올린내용입니다...
아무래도 문의글이다보니 여러사람이 볼수 없을 것 같아...

저자권이 제게 있으니 여기다 다시 계시합니다...
혹시 이글을 읽으시는 분들은.... 화내지마시고 ...
설치파일을 드라이브 최상위.. 측 C:\ 밑으로 옮기신후 설치 시도를 해보시고..
한글과컴퓨터에서 말한데로 2015재배포판 설치를 해야 할 경우 2017이 깔려있으면 지우시고 설치하시면 됩니다....



한글2018 설치 안되서 전화 했던 사람입니다.


.. 본인들은
일단
저와 상담한 두번 째 직원에게 보내는 글입니다.
물론 다른 직원들도 같이 공유해서 보시면 좋겠지만 ...
제가 회사 상관이 아니니 .. 알아서들 하시고요..

우선 제가 설치가 안되서 전화를 했더니
Microsoft Visual C++ 2015 Redi...(재배포판) 설치가 안되서 한글이 안깔린다고 했습니다.
제가 C++ 2013은 설치가 되었지만 2015 설치시 에러가 난다고도 했습니다....


한컴은 제게 닷넷3.0이하 버전 활성화를 시켜야 된다며 ..
제 컴 설정을 바꿨습니다....

참고로 저는 닷넷 기반으로 프로그램 작업을 하는 개발자입니다....
그런 이상한 말로 일단 제 컴 설정을 바꾼것은 ..뭐  그렇게 나와있을 테니...... 이해 합니다.


그런데 그 이후 부터가 아주 우낍니다...
C++ 2015 재배포판이 안깔린다고 본인들이 할 수 없다고 합니다... MS에 문의 하라네요...


그래서 뭐 그런가보다 하고 오늘 받은 라이선스로 설치한 PC들에서 C++2015를 찾아보았지만 아무도 설치되어 있지 않더라고요...

그래서 또 전화 했죠.. 이번이 두번째 상담사인데.. 기분나빠서 이름이고뭐고 기억이 안나네요..
뭐 고객님 .. 어쩌고 했겠지요... 그러면서 하는말이...... 본인도 원격으로 재배포를 다시 설치 시도 해볼수 있으니 동일한 증상이라고......
생각된다며.......  MS에 알아보랍니다.........

그래서 물어봤습니다. 왜 다른 직원들은 C++ 2015 는 없고 C++ 2017만 있는데 설치되냐고..
그냥 원칙? 만 말하더군요...
그래서 재가 설치 해봤습니다......2017 지우고 2015 깔고.. 2017 설치하니........
2015가 사라집니다.........
지금 2017로 깔려있고요.........


2015와 2017간에 충돌이라기 보다는 전체 수용이라 아마도 2017을 깔면 2015가 지워지는 모양인데..........
그것도 확인 안된체로 고객 대응이랍시고 ..... MS에 알아보라는 말..............
화나네요..


또한 가지...
32bit 프로그램은 설치할 경로 또는 설치할 원본파일이 있는 경로가 몇바이트? 인지는 모르지만 길면 설치가 안되는 문제가 간혹 있습니다...
특히 오라클 설치할때요...
그래서 혹시나하고 드라이브 최상위로 올려서 설치 시도 하니 잘되더군요..


이거 MS에 물어보면 .. 알려주는건가요.!!!!!!!!!!!!!!!!!!


고객 대응하는 팀이라면 물론 인바운드 콜 받으시는 분들은 힘드시겠지만..



본인들이 컴 사서 안깔리는데 MS에서 한글에 문의해보세요........ 라고 만약 한다면......... 어떨까요??

... 하여튼.......... 화나는 하루였네요..

질문은 아님으로 답변은 필요 없지만..........

한글과컴퓨터에 실망하게 되네요.. ...

이런저런 이유로 안깔릴때는 남탓만 하지마시고.. 본인들 내부에서 같은 환경 만들어서 TEST 도 좀 해보시라고 권해 드리고 싶네요
그렇지 않고서야 어떻게 아무렇게나 쓰는 사용자들이 발생시키는 문제에 대한 TroubleShuting을 할 수 있을까요..

뭐 이글 무시 해도 좋지만........
전 제가쓴 글이니 .. 인터넷에 게시합니다...
다른 사람들도 혹시 안깔리면 같은 문제 일수 있으니까요..


그럼 수고...하세... 요

2016년 4월 27일 수요일

C# Oracle bind변수사용 , C# preparedstatement 실행 예제

string oradb = Settings.Default.ConnectionString;

OracleConnection conn = new OracleConnection(oradb);
conn.Open();
OracleCommand cmd = new OracleCommand();
cmd.CommandType = CommandType.Text;
cmd.Connection = conn;


/******************************************************************************/
/* SELECT 구문 PREPAREDSTATEMENT 예제  */
cmd.CommandText = @"select * from table_name where item_Code = :val";
cmd.Parameters.Add("val", "06");
OracleDataReader od = cmd.ExecuteReader();
while (od.Read())
{
  string s_ = od["col_name01"].ToString();
  string s_1 = od["col_name02"].ToString();
}
/**************************************************************************/
cmd.Parameters.Clear();
/******************************************************************************/
/* INSERT 구문 PREPAREDSTATEMENT 예제  */
cmd.CommandText = @"insert into table_name (A , N, S) values (:val1, :val2, :val3)";
cmd.Parameters.Add("val1", "02");
cmd.Parameters.Add("val2", "2");
cmd.Parameters.Add("val3", DateTime.Now);
cmd.Prepare();       /* <-- nonquery="" p="" prepare="">cmd.ExecuteNonQuery();
/******************************************************************************/

conn.Close();
conn.Dispose();

2015년 11월 20일 금요일

Oralce 에서 쿼리결과 추출 후 파일로 작성하기 console에서

a.sql 파일 내용
=========================================================
SET NEWPAGE 0
SET SPACE 0
SET TRIMSPOOL ON
SET LINESIZE 3000
SET PAGESIZE 0
SET ECHO OFF
SET FEEDBACK OFF
SET VERIFY OFF
SET HEADING OFF
SET TAB OFF
SET TERMOUT OFF
SET FEED OFF
SET COLSEP '|'    --컬럼구분자를 파이프로 설정함
SPOOL /oradata/test.txt;
select
CONTROLNUMBER AS MIN_DT12,
(
  CASE
    WHEN AREA_INDEX = 336111 THEN 701
    WHEN AREA_INDEX = 336112 THEN 702
    WHEN AREA_INDEX = 336121 THEN 711
    WHEN AREA_INDEX = 336122 THEN 712
    WHEN AREA_INDEX = 336124 THEN 713
    WHEN AREA_INDEX = 336125 THEN 714
    WHEN AREA_INDEX = 336127 THEN 715
    WHEN AREA_INDEX = 336128 THEN 716
    WHEN AREA_INDEX = 336131 THEN 721
    WHEN AREA_INDEX = 336132 THEN 722
    WHEN AREA_INDEX = 336133 THEN 723
    WHEN AREA_INDEX = 336134 THEN 724
    WHEN AREA_INDEX = 336352 THEN 731
    WHEN AREA_INDEX = 336353 THEN 732
    WHEN AREA_INDEX = 336354 THEN 733
    WHEN AREA_INDEX = 336355 THEN 734
    WHEN AREA_INDEX = 336441 THEN 741
  END
) AS MIN_LOC,
'1' AS MIN_ITEM,
SO2 AS MIN_VALUE,
0 AS MIN_OVER,
SSO2 AS MIN_STTE,
'R' AS MIN_FLAG,
TO_CHAR(SYSDATE, 'YYYYMMDDHH24miss') AS MIN_SAVE_DT14
from five_table
where 1=1
AND CONTROLNUMBER LIKE '2015%'
AND AREA_INDEX IN ('336111', '336112', '336121', '336122', '336124',
                '336125', '336127', '336128', '336131', '336132',
                '336133', '336134', '336352', '336353', '336354',
                '336355', '336441')
SPOOL ON
QUIT
=========================================================
SQL>a.sql 로실행하면 됨

2014년 6월 20일 금요일

Oracle 시간 날짜 계산

[불펌] 펌주소: http://eaglesoft.tistory.com/56 
삭제요청시 말씀해주세요
불펌이지만 좋은 정보 감사드립니다. 

- 시간구하기
select (to_date('1800', 'hh24mi') - to_date('0900', 'hh24mi'))*(24*60*60 )
 from dual;
to_date 로 계산후
(24 -- 시간표시
*60 -- 분표시
*60 ) -- 초표시

- 현재시간에 시간 추가하기
select sysdate,sysdate+1/(24*60)*10 from dual

sysdate+1은 1일 이후입니다.
그래서 1/(24*60)은 1분입니다.
10을 마지막에 곱하면 10분이죠 ^^
일 가(감) 산 SYSDATE + 1
시간 가(감) 산 SYSDATE + 1/24
분 가(감) 산 SYSDATE + 1/24/60
초 가(감) 산 SYSDATE + 1/24/60/60

-- 날자와 날짜사이의 시간 구하기select to_date('2005050309','yyyymmddhh')-to_date('2005050409', 'yyyymmddhh'))*24
from dual;
;
                               
-- 날짜에 시간더하기
select to_char(to_date('200305021120', 'yyyymmddhh24mi'),  'yyyymmddhh24mi'),
to_char(to_date('200305021120', 'yyyymmddhh24mi') + (115/1440), 'yyyymmddhhmi') from dual;

-- 날짜수 구하기select
  to_date('20050301', 'yyyymmdd')+1 - to_date('20050225', 'yyyymmdd')
from dual;
->여기서 하루치를 더한거는 그마지막 날을 포함하기 위해 하루를 더해야한다

-- 개월수 구하기
select months_between(to_date('20050131', 'yyyymmdd'), to_date('20010201', 'yyyymmdd')) from dual;

-- 그달의 마지막 날짜 구하기
select to_char(last_day(to_date('20040201','yyyymmdd')), 'yyyymmdd')
from dual;
select to_char(last_day(to_date('20040201','yyyymmdd')), 'mm')
from dual;
select to_char(last_day(to_date('20040201','yyyymmdd')), 'dd')
from dual;

-- 하루를 더추가하고 2달 뒤의 일자구하기select to_char(add_months(to_date('20050201','yyyymmdd')+1, 2), 'yyyymmdd')
from dual;

-- 하루를 더추가하고 2달 앞의 일자구하기
select to_char(add_months(to_date('20050201','yyyymmdd')+1, 2), 'yyyymmdd')
from dual;

-- 해달일부터 2달 뒤의 일자구하기select to_char(add_months(to_date('20050201','yyyymmdd'),2), 'yyyymmdd')
from dual;

- months_between : 두날짜간의 달수 구하기
select  months_between (to_date('20050201','yyyymmdd'), to_date('20050101', 'yyyymmdd'))
from dual;

- next_day 특정날자에서 가장가까운 요일의 날자 찾기
select next_day(to_date('20050101','yyyymmdd'), '일') from dual

TRUNC 함수의 제2 인수에'day'를 이용하면…….
SQL> select TRUNC(SYSDATE,'day') from dual;

TRUNC(SY
--------
05-02-13
리스트 4 이번 주의 주처음의 날을 취득

이러한 방법으로 간단하게 주의 처음의 날을 취득할 수 있습니다. 물론 SYSDATE 함수 대신에, SYSTIMESTAMP 함수를 사용할 수도 있습니다.다만, DATE형으로 변환되는 것은 기억해 둘 필요가 있습니다.
날짜 데이터로 TRUNC 함수를 사용하는 경우, 제2 인수에는'day'외에도 몇개인가 지정할 수 있습니다.메뉴얼을 확인하삼!!

TRUNC 함수를 사용한 샘플 SQL를  1개들어 둡니다.제목은 「이번 달의 제n○요일을 취득한다」
select decode(TRUNC(get_date,'mm'),TRUNC(SYSDATE,'mm'),get_date,null)
from (
select decode(TRUNC(TRUNC(TRUNC(SYSDATE,'mm'),'day') + :youbi -1,'mm')
             ,TRUNC(SYSDATE,'mm')
             ,TRUNC(TRUNC(SYSDATE,'mm'),'day') + :youbi -1
             ,TRUNC(TRUNC(SYSDATE,'mm'),'day') + :youbi -1 + 7)
      + (:nambanme - 1) * 7 get_date
from dual)
리스트 5 이번 달의 제n○요일을 취득한다

- sysdate = 19950725
-  round(sysdate, 'month') -> 19950801
-  round(sysdate,'year') -> 19960101
-  trunc(sysdate, 'month') -> 1950701
-  trunc(sysdate, 'year') -> 19950101

- 형식
 scc , cc : 세기 표현
 year : 년도를 영어로 표현
yyyy, yyy, yy, y : 년도를 자릿수로 자른다
bc, ad : 서기 등으로 표시
q : 분기 표시
mm : 두자리로 월표시
month: 영어로 표시
mon: 영어로 3자리로 월표시
rm: 로마자로 표시 i, ii. xi
ww: 1년기준 몇째주 표시
w:한달기준 몇째주 표시
ddd: 365(1년기준 ) 의 몇째 일
dd: 날짜를 두자리로 표시
d: 요일을 숫자로 표시
dy : 요일 한자리로 표시
day: 요일 표시
am, pm, a.m. , p.m. : 오전오후 표시
hh, hh12 : 12시 기준으로 표시
hh24 : 24시 기준으로 표시
/, "of" : 날짜의 중간에 문자 표시 -> to_char(to_date('19951201', 'yyyymmdd'),'yyyy "of" mm/dd')
spth : 날짜를 영문 서수로 표시
sp : 날짜를 영문 숫자로 표시

2014년 6월 13일 금요일

AIX 콘솔창에 한글입력 설정

2014.06.14 기록

.profile 파일에

locale -a 에서 사용할 language set 선택 후
export 시킴
예) export LANG=KO_KR.UTF-8

EDITOR설정 추가
예) export EDITOR=vi

위의 두 줄을 추가한 후 profile을 적용하면 콘솔에서 한글을 사용할 수 있다


단, putty로 할 경우에는 putty의 기본charactor set이 UTF-8이므로
설정화면에서 Window -> Appearance -> Font settings에서 한글을 사용할 수 있는 폰트를 선택하고
글꼴 선택창에서 스크립트를 반드시 한글로 설정한후 저장하도록 한다.
기본 설정은 영어인데 이렇게 적용할 경우 한글이 써지지 않는다....

주절주절 끝~~~

2014년 4월 29일 화요일

한PC(Window OS)에서 Oracle DB와 Client 구성 방법

한PC(Window OS)에서 Oracle DB와 Client 구성 방법

########64bit db 구성 및 32bit client 구성###########
1.64bit oracle install을 함
2.db(64bitit)db 구성을 함 ORACLE_HOME/bin/netca를 실행  listener 구성 후 ORACLE_HOME/bin/netmgr 실행후 
리스너에서 database 및 주소 등록(tnsnames.ora구성 하면 안됨)
3. OracleRemExecService 서비스 목록 에서 중지 후에 32bit client install 함
ORACLE_HOME/bin/netmgr 실행후 tnsnames(64bit 바라보게)만 구성
4.타 pc에서 tnsping 되는지 확인
5.접속 완료 ---끝----

------ Thanks KJS 

2014년 4월 13일 일요일

오라클 외부접속 관련 윈도우 방화벽 설정

오라클 포트를 방화벽에 인바운드 아웃바운드 허용 (+ 예지통과허용) 등록 후
tnsping은 접속되나 oracle이 연결되지 않을때

레지스트리에 아래와 같이 추가한다

\\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0

문자열 "USE_SHARED_SOCKET=TRUE" 를 추가한다