SAK }‘ŠÙ
Oracle PL/SQL •Ò17 - ƒe[ƒuƒ‹\‘¢Žæ“¾ƒXƒgƒAƒhACreatePLSQLDynasetAASP
¡ƒe[ƒuƒ‹\‘¢Žæ“¾ƒXƒgƒAƒhƒvƒƒVƒWƒƒ
EŽŸ‚Ì SAK ƒc[ƒ‹ƒpƒbƒP[ƒW‚É‚ÍA
ƒe[ƒuƒ‹\‘¢Žæ“¾
ƒe[ƒuƒ‹€–Ú’è‹`î•ñŽæ“¾
ŠÖ”‚ª‚ ‚éB
ˆÈ‰ºA‚±‚ÌŠÖ”‚ð oo4o - CreatePLSQLDynaset ‚Ì‹@”\‚ðŽg—p‚µ‚ÄAASP ‚Å
ƒf[ƒ^–â‚¢‡‚킹•\ަ‚·‚éB
/*
========================================================================
SAK ƒc[ƒ‹ƒpƒbƒP[ƒWŽd—l Copyright (C) 2002 Y.SAK
========================================================================
*/
create or replace package saktool is
type usertbl is ref cursor;
procedure GetUserTable(tbl in varchar2, cu out usertbl);
procedure GetUserTableItem(fld in varchar2, cu out usertbl);
end;
/
/*
========================================================================
SAK ƒc[ƒ‹ƒpƒbƒP[ƒW–{‘Ì Copyright (C) 2002 Y.SAK
========================================================================
*/
create or replace package body saktool is
/*
======================================================================
ƒe[ƒuƒ‹\‘¢Žæ“¾
======================================================================
*/
procedure GetUserTable(tbl in varchar2, cu out usertbl) is
begin
-- ƒe[ƒuƒ‹\‘¢ƒJ[ƒ\ƒ‹ƒI[ƒvƒ“
open cu for select
lower(table_name) as ƒe[ƒuƒ‹–¼,
column_name as €–Ú–¼,
lower(data_type) as €–Úƒ^ƒCƒv,
nvl(data_precision, char_col_decl_length) as ’·‚³,
data_scale as ¬”•”
from user_tab_columns
where lower(table_name) = tbl
order by table_name, column_id;
end;
/*
======================================================================
ƒe[ƒuƒ‹€–Ú’è‹`î•ñŽæ“¾
======================================================================
*/
procedure GetUserTableItem(fld in varchar2, cu out usertbl) is
begin
-- ƒe[ƒuƒ‹€–Ú’è‹`î•ñƒJ[ƒ\ƒ‹ƒI[ƒvƒ“
open cu for select
lower(table_name) as ƒe[ƒuƒ‹–¼,
column_name as €–Ú–¼,
lower(data_type) as €–Úƒ^ƒCƒv,
nvl(data_precision, char_col_decl_length) as ’·‚³,
data_scale as ¬”•”
from user_tab_columns
where instr(lower(column_name), fld) > 0
order by table_name, column_id;
end;
end;
/
¡ƒe[ƒuƒ‹\‘¢•\ަ ASP
Eƒpƒ‰ƒƒ^‚ðŽw’肹‚¸‚ɌĂÑo‚·‚ÆuƒeƒXƒgmvƒe[ƒuƒ‹\‘¢‚ð•\ަ‚·‚邿‚¤
‚ɂȂÁ‚Ä‚¢‚éB
EŽÀۂ̌ĂÑo‚µ‚ÍAŽŸ‚̂悤‚É‚·‚éB
®A\‘¢•\ަƒe[ƒuƒ‹–¼‚ÍA‰pŽš‚ð¬•¶Žš‚ÅŽw’è‚·‚邱‚ÆB
http://sak-design/w_test/dsptbl.asp?tbl=ƒeƒXƒgm
|_ ƒ†[ƒUƒe[ƒuƒ‹–¼
<%@ Language=VBScript %>
<%
Option Explicit
'=======================================================================
' dsptbl.asp ƒe[ƒuƒ‹\‘¢•\ަ ASP Copyright (C) 2002 Y.SAK
'=======================================================================
Public Const ORADB_DEFAULT = &H0
Public Const ORADYN_DEFAULT = &H0
Public Const ORADYN_NO_AUTOBIND = &H1
Public Const ORADYN_NO_BLANKSTRIP = &H2
Public Const ORADYN_READONLY = &H4
Public Const ORADYN_NOCACHE = &H8
Public Const ORADYN_ORAMODE = &H10
Public Const ORADYN_DBDEFAULT = &H20
Public Const ORADYN_NO_MOVEFIRST = &H40
Public Const ORADYN_DIRTY_WRITE = &H80
Public Const ORAPARM_INPUT = 1
Public Const ORAPARM_OUTPUT = 2
Public Const ORAPARM_BOTH = 3
Public Const ORATYPE_VARCHAR2 = 1
Public Const ORATYPE_NUMBER = 2
Public Const ORATYPE_SINT = 3
Public Const ORATYPE_FLOAT = 4
Public Const ORATYPE_STRING = 5
Public Const ORATYPE_VARCHAR = 9
Public Const ORATYPE_DATE = 12
Public Const ORATYPE_UINT = 68
Public Const ORATYPE_CHAR = 96
Public Const ORATYPE_CHARZ = 97
Public Const ORATYPE_CURSOR = 102
dim tbl
dim dbname
dim cnuser
dim OraSession
dim OraDatabase
dim rs
dim i
'=======================================================================
' €”õ
'=======================================================================
'** –â‚¢‡‚킹ƒe[ƒuƒ‹–¼
tbl = trim(request.querystring("tbl"))
if tbl = "" then tbl = "ƒeƒXƒgm"
'** ƒT[ƒrƒXAƒ†[ƒUÝ’è
dbname = "sak"
cnuser = "SAK/SAK"
'** oo4o Ú‘±
Set OraSession = Server.CreateObject("OracleInProcServer.XOraSession")
Set OraDatabase = OraSession.OpenDatabase(dbname, cnuser, ORADB_DEFAULT)
'** ƒpƒ‰ƒƒ^’ljÁ
OraDatabase.Parameters.Add "ƒe[ƒuƒ‹", tbl, ORAPARM_INPUT
OraDatabase.Parameters("ƒe[ƒuƒ‹").ServerType = ORATYPE_VARCHAR2
'** ƒŒƒR[ƒhƒZƒbƒgƒI[ƒvƒ“
set rs = OraDatabase.CreatePLSQLDynaset("Begin saktool.GetUserTable " _
& "(:ƒe[ƒuƒ‹, :cu); end;", "cu", ORADYN_DEFAULT)
'=======================================================================
' ˆ—
'=======================================================================
%>
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</HEAD>
<BODY>
<CENTER>
<TABLE border=1 bordercolordark=White bordercolorlight=#a0a0a0 cellPadding=3 cellSpacing=0 rules=ALL>
<TBODY bgcolor=#f0f0f0 align="left">
<TR bgcolor=#d0d0d0 align="center">
<TD colspan="5">ƒe[ƒuƒ‹\‘¢ƒŠƒXƒg - <% = tbl %></TD>
</TR>
<TR bgcolor=#d0d0d0 align="center">
<%
'** Œ©o‚µ•\ަ
for i = 0 to rs.Fields.Count - 1
response.write("<TD>" & rs(i).name & "</TD>")
next
response.write("</TR>")
'** ƒf[ƒ^•\ަ
do until rs.eof
response.write("<TR>")
for i = 0 to rs.Fields.Count - 1
if isnull(rs(i)) then
response.write("<TD>•‚Ž‚‚‚“‚G</TD>") '© •‚Ž‚‚‚“‚G‚ÍŽÀÛ‚Í”¼Šp‹Lq
else
response.write("<TD>" & rs(i) & "</TD>")
end if
next
response.write("</TR>")
rs.movenext
loop
%>
</TBODY>
</TABLE>
</CENTER>
</BODY>
<%
'=======================================================================
' ŒãŽn––
'=======================================================================
'** ƒŒƒR[ƒhƒZƒbƒgƒNƒ[ƒY
Set rs = Nothing
'** oo4o Ú‘±‰ðœ
Set OraDatabase = Nothing
Set OraSession = Nothing
%>
| ƒe[ƒuƒ‹\‘¢ƒŠƒXƒg - ƒeƒXƒgm | ||||
| ƒe[ƒuƒ‹–¼ | €–Ú–¼ | €–Úƒ^ƒCƒv | ’·‚³ | ¬”•” |
| ƒeƒXƒgm | ƒL[ | char | 8 | |
| ƒeƒXƒgm | ƒf[ƒ^1 | number | 9 | 0 |
| ƒeƒXƒgm | ƒf[ƒ^2 | number | 9 | 0 |
| ƒeƒXƒgm | ƒf[ƒ^3 | number | 9 | 0 |
¡ƒe[ƒuƒ‹€–Ú’è‹`î•ñ•\ަ ASP
Eƒpƒ‰ƒƒ^‚ðŽw’肹‚¸‚ɌĂÑo‚·‚Æuƒf[ƒ^v€–Ú’è‹`‚ðŒŸõ•\ަ‚·‚邿‚¤‚É
‚È‚Á‚Ä‚¢‚éB
EŽÀۂ̌ĂÑo‚µ‚ÍAŽŸ‚̂悤‚É‚·‚éB
®A’è‹`•\ަ€–Ú–¼‚ÍA‰pŽš‚ð¬•¶Žš‚ÅŽw’è‚·‚邱‚ÆB
http://sak-design/w_test/dspfld.asp?fld=ƒf[ƒ^
|_ ƒ†[ƒUƒe[ƒuƒ‹€–ÚŒŸõ•¶Žš—ñ
<%@ Language=VBScript %>
<%
Option Explicit
'=======================================================================
' dspfld.asp ƒe[ƒuƒ‹€–Ú’è‹`î•ñ•\ަ ASP Copyright (C) 2002 Y.SAK
'=======================================================================
Public Const ORADB_DEFAULT = &H0
Public Const ORADYN_DEFAULT = &H0
Public Const ORADYN_NO_AUTOBIND = &H1
Public Const ORADYN_NO_BLANKSTRIP = &H2
Public Const ORADYN_READONLY = &H4
Public Const ORADYN_NOCACHE = &H8
Public Const ORADYN_ORAMODE = &H10
Public Const ORADYN_DBDEFAULT = &H20
Public Const ORADYN_NO_MOVEFIRST = &H40
Public Const ORADYN_DIRTY_WRITE = &H80
Public Const ORAPARM_INPUT = 1
Public Const ORAPARM_OUTPUT = 2
Public Const ORAPARM_BOTH = 3
Public Const ORATYPE_VARCHAR2 = 1
Public Const ORATYPE_NUMBER = 2
Public Const ORATYPE_SINT = 3
Public Const ORATYPE_FLOAT = 4
Public Const ORATYPE_STRING = 5
Public Const ORATYPE_VARCHAR = 9
Public Const ORATYPE_DATE = 12
Public Const ORATYPE_UINT = 68
Public Const ORATYPE_CHAR = 96
Public Const ORATYPE_CHARZ = 97
Public Const ORATYPE_CURSOR = 102
dim fld
dim dbname
dim cnuser
dim OraSession
dim OraDatabase
dim rs
dim i
'=======================================================================
' €”õ
'=======================================================================
'** –â‚¢‡‚킹€–Ú–¼
fld = trim(request.querystring("fld"))
if fld = "" then fld = "ƒf[ƒ^"
'** ƒT[ƒrƒXAƒ†[ƒUÝ’è
dbname = "sak"
cnuser = "SAK/SAK"
'** oo4o Ú‘±
Set OraSession = Server.CreateObject("OracleInProcServer.XOraSession")
Set OraDatabase = OraSession.OpenDatabase(dbname, cnuser, ORADB_DEFAULT)
'** ƒpƒ‰ƒƒ^’ljÁ
OraDatabase.Parameters.Add "€–Ú", fld, ORAPARM_INPUT
OraDatabase.Parameters("€–Ú").ServerType = ORATYPE_VARCHAR2
'** ƒŒƒR[ƒhƒZƒbƒgƒI[ƒvƒ“
set rs = OraDatabase.CreatePLSQLDynaset("Begin saktool.GetUserTableItem " _
& "(:€–Ú, :cu); end;", "cu", ORADYN_DEFAULT)
'=======================================================================
' ˆ—
'=======================================================================
%>
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</HEAD>
<BODY>
<CENTER>
<TABLE border=1 bordercolordark=White bordercolorlight=#a0a0a0 cellPadding=3 cellSpacing=0 rules=ALL>
<TBODY bgcolor=#f0f0f0 align="left">
<TR bgcolor=#d0d0d0 align="center">
<TD colspan="5">ƒe[ƒuƒ‹€–Ú’è‹`î•ñƒŠƒXƒg - <% = fld %></TD>
</TR>
<TR bgcolor=#d0d0d0 align="center">
<%
'** Œ©o‚µ•\ަ
for i = 0 to rs.Fields.Count - 1
response.write("<TD>" & rs(i).name & "</TD>")
next
response.write("</TR>")
'** ƒf[ƒ^•\ަ
do until rs.eof
response.write("<TR>")
for i = 0 to rs.Fields.Count - 1
if isnull(rs(i)) then
response.write("<TD>•‚Ž‚‚‚“‚G</TD>") '© •‚Ž‚‚‚“‚G‚ÍŽÀÛ‚Í”¼Šp‹Lq
else
response.write("<TD>" & rs(i) & "</TD>")
end if
next
response.write("</TR>")
rs.movenext
loop
%>
</TBODY>
</TABLE>
</CENTER>
</BODY>
<%
'=======================================================================
' ŒãŽn––
'=======================================================================
'** ƒŒƒR[ƒhƒZƒbƒgƒNƒ[ƒY
Set rs = Nothing
'** oo4o Ú‘±‰ðœ
Set OraDatabase = Nothing
Set OraSession = Nothing
%>
| ƒe[ƒuƒ‹€–Ú’è‹`î•ñƒŠƒXƒg - ƒf[ƒ^ | ||||
| ƒe[ƒuƒ‹–¼ | €–Ú–¼ | €–Úƒ^ƒCƒv | ’·‚³ | ¬”•” |
| ƒR[ƒhm | ƒf[ƒ^ | varchar2 | 200 | |
| ƒeƒXƒgm | ƒf[ƒ^1 | number | 9 | 0 |
| ƒeƒXƒgm | ƒf[ƒ^2 | number | 9 | 0 |
| ƒeƒXƒgm | ƒf[ƒ^3 | number | 9 | 0 |
¡Oracle PL/SQL •ÒŽ‘—¿
¡SQL Šî‘bŽÀ’n•ÒŽ‘—¿
¡SQL Šî‘b•ÒŽ‘—¿
¡SQL ƒ`ƒ…[ƒjƒ“ƒO•ÒŽ‘—¿
¡PostgreSQL •ÒAJAVA ServletAJSP •ÒŽ‘—¿
¡MySQL •ÒŽ‘—¿