안녕하세요.
저도 확실한 개념까진 모르겠습니다. 그냥 조금...
PL/SQL 에서 프로시저를 통한 처리와 OCI를 통한 처리가 있는것으로
알고 있고요. OCI처리는 저도 잘 모르겠습니다. 아시는 분 있으면 좀...
asp에서의 처리----------------------------------------------------------
<OBJECT RUNAT="Server" PROGID="ADODB.Command" ID="Cmd"></OBJECT>
<%
WITH Cmd
.ActiveConnection = Conn
.CommandType = adCmdStoredProc
.CommandText = "ProcWorkInsert"
.Parameters.Append .CreateParameter("param1", adChar, adParamInput, 6, workid)
.Parameters.Append .CreateParameter("param2", adChar, adParamInput, 4, kind)
.Parameters.Append .CreateParameter("param3", adLongVarChar, adParamInput, Lenb(contents), contents)
.Parameters.Append .CreateParameter("param4", adVarChar, adParamOutput, 10)
.Execute()
END WITH
errorcode = Cint(Cmd.Parameters("param4"))
if errorcode = 0 then
' 성공
else
' 실패
end if
%>
위는 Form 값을 넘겨 받는 쪽의 처리입니다.
오라클 8i에서의 처리 -----------------------------------------------------
PL/SQL 에서 프로시저를 생성
CREATE OR REPLACE PROCEDURE ProcWorkInsert (
p_workid IN t_table.fd_workid%TYPE,
-- t_table 테이블의 fd_workid 칼럼 속성을 그대로 인수받는다.
p_kind IN t_table.fd_kind%TYPE,
p_content IN long,
p_errorcode OUT NUMBER)
AS
v_clob_selected clob;
v_write_amt number;
v_write_offset number := 1;
v_buf long;
Begin
p_errorcode := 0;
INSERT INTO t_table VALUES (p_workid, p_kind, EMPTY_CLOB() )
RETURNING fd_contents INTO v_clob_selected;
-- 먼저 EMPTY_CLOB()로 초기화 시키고 생성된 포인터값을 v_clob_selected로
받아들이다.
if p_content is Not Null then
v_buf := p_content;
v_write_amt := length(v_buf);
DBMS_LOB.WRITE(v_clob_selected, v_write_amt, v_write_offset, v_buf);
-- v_write_offset : 시작점, v_write_amt : 끝 점
-- v_clob_selected : write 시킬 clob포인터 위치, v_buf : 값
end if;
commit;
EXCEPTION -- 예외 처리(에러)
WHEN OTHERS THEN
p_errorcode := SQLCODE;
End ProcWorkInsert;
위와 같이 처리가 되었구요. 기타 정보는 삼각형프레스의 PL/SQL programming
책자의 뒷부분과 http://technet.oracle.co.kr/의 메뉴얼 부분을 보시면
많은 도움이 될거라 생각됩니다.(Large Objects (LOBs) using PLSQL.pdf)
그리고 큰 책방에 가서 asp쪽을 보시면 database어쩌구 하는(잘 생각안남)
두꺼운 책(빨간표지)이 있습니다. 이 책을 찾으신다면 도움이 조금더 될겁니다.
asp와 oracle에서의 처리에 대한 설명이 좀 있습니다.
그럼...
>>이건종 님께서 쓰시길<<
:: 자료들을 아무리 찾아봐도 PHP에서 LOB 필드를 사용하는 방법은 있는데..
:: ASP에서 사용하는 방법이 없어서 이렇게 글을 올립니다..
::
:: Oracle 8i를 ASP를 사용하여 ODBC Connect을 하고 있습니다..
:: 다른 필드는 다 들어가는데 게시판 내용이 4000자까지밖에 들어가지 않아..
:: 책을 찾아보니 LOB를 사용하라고 되어 있더라고요..
:: 그래서 그렇게 했는데 2000여자만 들어가고 들어가지 않는 것입니다..
:: 그래서 서점에 가서 책도 찾아보고 했는데 찾은 것은 LOB가 외부에 저장하는 것이기 때문에 BLOB(), CL
:: OB()같은 함수를 사용하는 것입니다...
:: 정확히 Insert에서부터 Update, Delete에 관한 내용을 알고 싶은데
:: 그에 대한 자료가 없네요...
::
:: 여기에 대한 조언이나 Sample, 또는 관련 사이트를 알려주시면 감사하겠습니다...
::
:: 이건종씀..
|