KCP  "cs01 인증정보가 변조 되었습니다"  오류

KCP "cs01 인증정보가 변조 되었습니다" 오류

"CS01 인증정보가 변조되었습니다"라는 오류가 뜨는 원인은 
1. 이름이 깨져서 넘어가는 경우
2. dll 권한이 없을때

1번의 경우 한글 빼고 영문으로 넘겨서 처리가 되면 한글깨짐 문제이므로 cs코드에 아래와 같이 추가해준다.
Response.Charset = "euc-kr";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("euc-kr");

부모테이블 수정/삭제시 자식테이블 자동으로 수정/삭제

부모테이블 수정/삭제시 자식테이블 자동으로 수정/삭제

부모테이블 수정/삭제시 자식테이블 자동으로 수정/삭제 

A,B,C라는 테이블이 있고 서로 연관 관계를 맺어놓습니다.
C는 B를 참조(C의 상위 부모테이블 B, B의 하위 자식테이블 C)
다시 B는 A를 참조(B의 상위 부모테이블 A, A의 하위 자식테이블 B)
A > B > C 순서대로 상위 격에 있다고 생각하시면 될것 같습니다.
3개의 테이블에서 레코드 값을 삭제하는 방법은
delete C => B => A 순서대로 관련 테이블을 삭제해야겠죠?
아니면 개체참조 오류가뜰테니깐요.
 
하지만 이같은 작업을 A테이블만 삭제해도 하위 자식테이블이 자동으로 삭제되는 방법이 있습니다.
바로 알아볼끼요?
 
 
삭제할수 있는 방법은
FK의 관계를 설정할 경우 CASCASE DELETE 를 설정하시게 된다면
A 테이블에서 삭제하면 B 테이블에 맞는 데이터가 삭제되게 할 수 있습니다.
 
아래처럼 키를 정의하실때 옵션을 사용할 수 있습니다.
 

SQL문)

ALTER TABLE BTable
ADD CONSTRAINT FK_B_1 FOREIGN KEY (CustomerId)
REFERENCES ATable (CustomerId) ON DELETE CASCADE
GO


혹은 GUI방식으로도 변경이 가능합니다. 한번 알아볼까요?


테이블 - 디자인 - 관계 순서로 들어가 봅니다.

 
부모테이블과 자식테이블의 관계에서 테이블 디자이너 - INSERT 및 UPDATE 사양을 펼친후에 "삭제 규칙" 을 "계단식 배열"로 변경하게되면 부모테이블의 컬럼을 삭제하면 참조된 자식테이블의 데이터도 함께 삭제되는것을 확인할수 있습니다.
 


위에서 봐서 알겠지만 수정은 "업데이트 규칙"을 동일하게 설정하면 같은 효과를 볼수 있습니다.



참조 : http://egloos.zum.com/sweeper/v/3005563
원본 : https://m.blog.naver.com/sky0210love/20148816689
트리거 생성(CREATE TRIGGER)

트리거 생성(CREATE TRIGGER)

트리거 생성(CREATE TRIGGER)
--기본 트리거 생성
CREATE OR REPLACE TRIGGER Audit_employee_reset
AFTER INSERT OR DELETE OR UPDATE OF COLUMN1, COLUMN2 ON TABLE_NM
BEGIN
   auditpackage.set_reason(NULL);
END;


CREATE OR REPLACE TRIGGER TRIGGER_TEST
  BEFORE DELETE OR INSERT OR UPDATE ON TABLE_NM
  FOR EACH ROW
WHEN (new.COLUMN1> 0)
DECLARE
    sal_diff number;
BEGIN

    INSERT INTO TEST1 VALUES(:old.COLUMN1||'-'||:NEW.COLUMN1);
    
    dbms_output.put('Old salary: ' || :old.COLUMN1);
    dbms_output.put('  New salary: ' || :new.COLUMN1);
    dbms_output.put_line('  Difference ' || :new.COLUMN1);
END;
/


CREATE OR REPLACE TRIGGER Dept_emplist_tr
   INSTEAD OF INSERT ON NESTED TABLE Emplist OF Dept_view
   REFERENCING NEW AS Employee
      PARENT AS Department
   FOR EACH ROW
BEGIN
-- The insert on the nested table is translated to an insert on the base table:
   INSERT INTO Emp_tab VALUES (
      :Employee.Empno, :Employee.Empname,:Employee.Salary, :Department.Deptno);
END;


--사용자 로그인 하면 실행하는 트리거? 별게 다 있네
CREATE OR REPLACE TRIGGER On_Logon  
  AFTER LOGON  
  ON The_user.Schema  
BEGIN  
  Do_Something;  
END;  


    IF INSERTING THEN    --등록이면
        ...
    ELSIF DELETING THEN  --삭제면
        ...    
    ELSE
    
    --업데이트된컬럼명이 COLUMN1 라면
    IF UPDATING('COLUMN1') THEN
        ...
    --그냥 업데이트 라면
    ELSIF UPDATING THEN
        ...        
    END IF;


--트리거 사용
ALTER TRIGGER TRIGGER_TEST ENABLE;
--트리거 사용 정지
ALTER TRIGGER TRIGGER_TEST DISABLE;


--트리거 Recompiling
ALTER TRIGGER TRIGGER_TEST COMPILE;


--트리거 이름으로 조회
SELECT Trigger_type, Triggering_event, Table_name
   FROM USER_TRIGGERS
   WHERE Trigger_name = 'TRIGGER_NAME';
   
SELECT Trigger_body
   FROM USER_TRIGGERS
   WHERE Trigger_name = 'TRIGGER_NAME';   

참고 : http://ooz.co.kr/33
원본 : https://479lgs.blog.me/220373814609
linked server 셋팅 및 사용

linked server 셋팅 및 사용

 - MSSQL 연결된 서버 생성


   EXEC sp_addlinkedserver
      @server = '[연결된 서버별칭]',
      @srvproduct = '',
      @provider = 'SQLOLEDB',
      @datasrc = '[서버 아이피]',
      @catalog = '[데이터 베이스명]'

 - MSSQL 연결계정 생성


   EXEC sp_addlinkedsrvlogin
      @rmtsrvname= '[연결된 서버별칭]',
      @useself= 'false',
      @rmtuser = '[(연결할 서버의)사용자 이름]',
      @rmtpassword = '[(연결할 서버의)사용자 암호]'

 - MSSQL 연결된 서버 확인

   SELECT FROM master.dbo.sysservers WHERE srvname = '[연결된 서버별칭]'

 - MSSQL 연결계정 확인


   SELECT FROM master.sys.linked_logins WHERE remote_name = '[사용자 이름]'

 - MSSQL 연결된 서버 이용방법

   연결된 서버를 등록한 후 사용하려면 [연결된 서버별칭].[데이터 베이스명].[데이터베이스 소유자명].[테이블명]
   형태로 호출하여 사용할 수 있습니다.
   SELECT 쿼리를 예로 들면 아래와 같습니다.


 - MSSQL 일반서버에 SELECT 쿼리시


​   SELECT [컬럼명] FROM [테이블명] WHERE [조건절]

 - MSSQL 연결된 서버에 SELECT 쿼리시


​   SELECT [컬럼명] FROM [연결된 서버별칭].[데이터 베이스명].[데이터베이스 소유자명].[테이블명] WHERE [조건절]

 - MSSQL 연결된 서버 삭제


   EXEC sp_dropserver
      @server = '[연결된 서버별칭]'

 - MSSQL 연결계정 삭제


   EXEC sp_droplinkedsrvlogin
      @rmtsrvname= '[연결된 서버별칭]',
      @locallogin = NULL

 [참고사항] 연결된 서버 삭제

   연결된 서버를 삭제하기 위해서는 sp_droplinkedsrvlogin 을 이용하여 연결계정을 먼저 삭제하고
   sp_dropserver 를 이용하여 연결된 서버를 삭제하여야 합니다.


 - 예제 1

   아래와 같은 정보를 갖는 연결된 서버를 생성하시오.


항목
상세 내용
연결된 서버별칭
linkedserver
서버 아이피
192.168.1.3
데이터 베이스명
test
사용자 이름
id
사용자 암호
password

 예제 1 쿼리

   EXEC sp_addlinkedserver
      @server = 'linkedserver',
      @srvproduct = '',
      @provider = 'SQLOLEDB',
      @datasrc = '192.168.1.3',
      @catalog = 'test'

   EXEC sp_addlinkedsrvlogin
      @rmtsrvname= 'linkedserver',
      @useself= 'false',
      @rmtuser = 'id',
      @rmtpassword = 'password'

 - 예제 2

   예제1에서 생성한 연결된 서버와 연결계정을 확인하시오.



 - 예제 2 연결된 서버 생성여부 확인

   SELECT FROM master.dbo.sysservers WHERE srvname = 'linkedserver'

srvid
srvstatus
srvname
1
1184
linkedserver

 - 예제 2 연결계정 생성여부 확인

   SELECT FROM master.sys.linked_logins WHERE remote_name = 'id'

server_id
local_principal_id
uses_self_credential
remote_name
modify_date
1
0
0
id
2015-03-22 16:11:41.637

srvid
srvstatus
srvname
1
1184
linkedserver

 - 예제 3

   예제1에서 생성한 연결된 서버를 이용하여 아래와 같은 테이블의 내용을 조회하시오.


 - 192.168.1.3 서버 test.dbo.성적 테이블
일련번호
이름
점수
1
홍길동
90
2
일지매
95
3
임꺽정
85

 - 예제 3 쿼리

   SELECT 일련번호이름점수 FROM linkedserver.test.dbo.성적

일련번호
이름
점수
1
홍길동
90
2
일지매
95
3
임꺽정
85

 - 예제 4

   예제1에서 생성한 연결된 서버와 연결계정을 삭제하시오.


 - 예제 4 쿼리


   EXEC sp_droplinkedsrvlogin
      @rmtsrvname= 'linkedserver',
      @locallogin = NULL

   EXEC sp_dropserver
      @server = 'linkedserver'

원본
https://m.blog.naver.com/PostView.nhn?blogId=diceworld&logNo=220311810558&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F