게시판을 만들려고 합니다.
pl/sql로 처리 할려고 하는데요.
create procedure test
(
a_no in announce.no%type
)
is
r_announce announce%rowtype;
begin
dbms_output.enable;
select *
into r_announce
from announce
where no = a_no;
dbms_output.put_line('No : ' || r_announce.no);
dbms_output.put_line('Title : ' || r_announce.title);
end test;
/
지금은 이런 pl/sql을 사용해서 테스트 하거든여.
table은 다음과 같고...
create table announce
(
no number not null,
title varchar2(50) not null,
content long not null,
day date not null,
viewcount number not null,
primary key (no)
)
/
sqlplus에서
SQL> execute test(1)
하면 결과가 나옵니다.
이걸 servlet에서 결과를 받아 볼 수 있었으면 하느데요.
어떻게 하면 좋을까요?
prepareCall과 CallableStatement를 사용해서 오류없이 실행을 했는데요.
결과 값은 어떻게 얻어 내는지 잘 모르겠습니다.
도와 주세요.
소스는 다음과 같구요.
public class test2
{
public static void main(String args[])
throws SQLException, ClassNotFoundException, UnsupportedEncodingException
{
Connection conn = null;
ResultSet result = null;
CallableStatement testproc = null;
String data = null;
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection("jdbc:oracle:oci8:board/board@LaonDB");
if(conn == null)
System.out.println("fail");
else
{
System.out.println("success");
testproc = conn.prepareCall("{call test(?)}");
testproc.setString(1, "1");
testproc.execute();
if(testproc.getResultSet() == null)
System.out.println("result set is null.");
}
if(result != null)
{
result.close();
result = null;
}
if(testproc != null)
{
testproc.close();
testproc = null;
}
if(conn != null)
{
conn.close();
conn = null;
}
}
}
이거 샐행하면 다음과 같이 나옵니다.
[root@localhost temp]# java test2
success
result set is null.
[root@localhost temp]#
|