Future ?
sreekanth gadhiraju, July 06, 2003 - 8:39 pm UTC
Hi tom,
We run oracle application 11i, the initial releases of Self Service applications Internet Expenses, Internet time and ireceivables used pl/sql procedures to generate the web pages. but the latest releases(formally Second Generation interface/user interface) uses JSP to generate the web pages using some kind of frame work.
My question is why oracle it self is discontinuing using pl/sql and using JSP instead.
thanks
sreekanth.g
July 07, 2003 - 7:12 am UTC
you mean your apps install isn't installing any PL/SQL?
They are using java for the UI and PL/SQL for much of the data logic.
Look -- there are literally 1,000's of ways to do this stuff. "discontinuing" -- that is a rather strong term. If you look at the various Oracle web sites, you'll see a mixture of lots of stuff. Wait for the next release of the database -- you'll see.
OWA_UTIL,HTP packages in Java sp,
RAJESH, November 10, 2003 - 5:42 pm UTC
Tom,
I'm planning to develop a web based sqlplus tool using mod_plsql(ORACLE 8.1.7.2 db).
we have somany database instances for development/systemtest and I dont want to create my DB packages in all the boxes to genarate HTML output.
I just want to use one dev instance for all the packages and use some Java stored procedures to connect to different instances(passing connect string , username,password). For testing purpose, I just hard coded these values.
something like
create or replace and compile java source named "test"
as
import java.sql.*;
import java.io.*;
import java.math.*;
import oracle.sql.*;
import oracle.jdbc.driver.*;
public class test1
{
public static void get_connection() throws Exception
{
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@dev_host:1521:dev_sid","dev_user","dev_passwd");
CallableStatement cstmt = conn.prepareCall(
"declare nm owa.vc_arr;"+ //got these things from your site
"vl owa.vc_arr;"+
" begin nm(1) := 'WEB';"+
"vl(1) := 'WHATEVER';" +
"owa.init_cgi_env( nm.count, nm, vl );" +
"htp.htmlopen;"+
"htp.bodyopen;"+
"htp.print('Print Something');" +
"htp.print('It is printing');"+
"htp.bodyclose;"+
"htp.htmlclose; "+
"end;");
cstmt.execute();
}
}
I have a procedure in the package like this:
procedure test
is language java
name 'test.get_connection()';
when I tried to execute this pckage in a browser
with
http://localhost:7777/pls/devdad/raj_util.test
It is giving "The document contain no data..." browser error!!
I tried to execute the procedure in SQLPLUS , it is not generating any output!!.
SQL> set serveroutput on
SQL> exec raj_util.test;
PL/SQL procedure successfully completed.
SQL> exec owa_util.showpage;
PL/SQL procedure successfully completed.
How to execute htp or owa_* packages in java to get HTML outputs?
I like PL/SQL . I'm not good at java servlets/JSP stuff and I don't want to use them.
November 10, 2003 - 7:04 pm UTC
a web based sqlplus tool?
htmldb.oracle.com <<<=== already done. really cool, most excellent sqlplus "replacement" tool
to test the output in sqlplus, you need to issue
set serveroutput on
first
OWA_UTIL,HTP packages in Java sp
Rajesh, November 11, 2003 - 4:41 pm UTC
Thanks for your reply!!
I creatd my account in HTML DB.It is really cool.
I think I confused you with "sqlplus tool" .
My actual problem is, I can't display anything on the browser by executing the above java SP(i just want to know why).
I used "serveroutput on" before executing the procedure(in sqlplus).But it didn't work.
My question is, can we use statements like htp.print in java stored procedures to get HTML output?.
If your answer is yes, then how can we do that?
I'm asking this because, I know, we cant display any output by using dbms_output.put_line in a Java stored procedure( with prepareCall).
November 12, 2003 - 6:47 am UTC
you can call dbms_output??? why can't you????
but, in your case -- you created an ENTIRELY DIFFERENT NEW session (look at your connect url). You were in "session A", called the java SP, it created "session B", produced a web page and then returned. The web page is hanging out in session B, session A cannot see it!!!
Here is an example showing htp and dbms_output output from java:
ops$tkyte@ORA920LAP> create or replace and compile java source named "test"
2 as
3 import java.sql.*;
4 import java.io.*;
5 import java.math.*;
6 import oracle.sql.*;
7 import oracle.jdbc.driver.*;
8
9 public class test1
10 {
11 public static void get_connection() throws Exception
12 {
13
14 DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
15 Connection conn = new OracleDriver().defaultConnection();
16
17 CallableStatement cstmt = conn.prepareCall
18 ( "begin dbms_output.put_line( 'Hello World' ); end;" );
19 cstmt.execute();
20
21 cstmt = conn.prepareCall
22 ( "begin htp.p( 'hello world wide web' ); end;" );
23 cstmt.execute();
24 }
25 }
26 /
Java created.
ops$tkyte@ORA920LAP>
ops$tkyte@ORA920LAP> create or replace procedure test
2 is language java
3 name 'test1.get_connection()';
4 /
Procedure created.
ops$tkyte@ORA920LAP>
ops$tkyte@ORA920LAP> set serveroutput on
ops$tkyte@ORA920LAP>
ops$tkyte@ORA920LAP> @owainit
ops$tkyte@ORA920LAP> declare
2 nm owa.vc_arr;
3 vl owa.vc_arr;
4 begin
5 nm(1) := 'WEB_AUTHENT_PREFIX';
6 vl(1) := 'WEB$';
7 owa.init_cgi_env( nm.count, nm, vl );
8 end;
9 /
PL/SQL procedure successfully completed.
ops$tkyte@ORA920LAP>
ops$tkyte@ORA920LAP>
ops$tkyte@ORA920LAP> exec test
Hello World
PL/SQL procedure successfully completed.
ops$tkyte@ORA920LAP> exec owa_util.showpage
Content-type: text/html
Content-length: 21
hello world wide web
PL/SQL procedure successfully completed.
OWA_UTIL,HTP packages in Java sp
Rajesh, November 12, 2003 - 12:27 pm UTC
Thanks TOM
Thanks for pointing out the bug in my program.
I totally forgot about the "SESSIONS".
You are really the best!!
Peeking htp buffer content
Robert, December 04, 2003 - 6:03 pm UTC
I been trying for hours to output to file stuff in the htp buffer.
I want to be able to view the buffer content at ANY one time so I doctored a copy of htp.showpage to output to file instead of dbms_output.put_line calls.
But it seems I kept getting *nothing* back, whether directly out to file or to my index_by table....
Is this possible - viewing the htp buffer content in the middle of page processing ?
Thanks Tom
December 04, 2003 - 6:24 pm UTC
if you use showpage in the middle of a mod_plsql function, that dumps it to the bit bucket (gone).
you would have to access the private array directly.
see
</code>
http://asktom.oracle.com/pls/asktom/f?p=100:11:::::P11_QUESTION_ID:347617533333 <code>
it shows how to "get the buffer" but once you get it -- it is "gone", it won't be sent back to the end user, you'd have to re"put" it again
Keep getting just nothing...
Robert, December 04, 2003 - 7:28 pm UTC
Thanks, but I don't know...
I tried:
1) Putting your procedure dump_page into HTP pkg,
and in the mod_plsql procedure I made the call like this:
<snip>
sys.htp.dump_page ; --< compiler insists I put the owner..
HTP.BODYCLOSE;
HTP.HTMLCLOSE;
EXCEPTION
<snip>
Empty file created...
2) Insert a call at the very end of
HTP procedure prn(cbuf in varchar2 DEFAULT NULL)
to collect whatever goes in there..
like:
<snip>
myprn(cbuf);
end;
Also got an empty file...
December 04, 2003 - 8:45 pm UTC
you are not using SYS for anything are you????????????
don't do that, don't rewrite htp. stop
restore the database back to its installed state (put htp back)
install this procedure in YOUR SCHEMA.
do not -- do not - repeat -- do not - use sys/system/etc. they are not yours, they are Oracle's -- leave them be.
htmldb vs. iSQL*Plus
Mark A. Williams, December 04, 2003 - 11:51 pm UTC
Tom,
You say...
<quote>
a web based sqlplus tool?
htmldb.oracle.com <<<=== already done. really cool, most excellent sqlplus "replacement" tool
</quote>
What about just using iSQL*Plus? Isn't that the primary purpose of that tool? Oracle is committed to continuing to ship iSQL*Plus I am guessing (as it is mentioned in Metalink as the replacement for sqlplusw.exe on Windows)?
Thanks,
Mark
December 05, 2003 - 7:17 am UTC
- well, some people like "toad"
- some people like character mode sqlplus
- some people like isqlplus
- some people are really going to like htmldb and it's sql workshop. (i particularly enjoy the pagination of result sets!)
Tom
--------------------------------------------------------------------
Tyler here. Additionally, HTML DB's SQL Workshop incorporates some features that you won't find in SQL Plus or iSQLPlus such as:
- Wizards to create objects such as tables (incuding a sequence and trigger to populate the primary key)
- Wizard to create an API package for a table
- Ability to show tables related to the current table, a simple er diagram if you will
- Generate DDL for any database object
- Query by example of any table
- Load spreadsheet data into an existing OR new table using copy and paste. Users love this wizard. You simply copy and paste your spreadsheet into a textarea then go through 3 more steps in a wizard and you have a table WITH your data in it, a primary key, sequence, and a trigger using the sequence to populate your primary key
- Generate lookup table wizard. This is great for tables that you want to normalize. You pick a table and a column in that table that has repetitive data and the wizard creates a new table for you that contains the distinct values from that column and a corresponding id. It then updates your original table to replace the data in the column with the primary key of the corresponding data in the lookup table AND adds a foriegn key constraint to the lookup table.
If all of these features aren't enough to sway you, keep in mind that with HTML DB you can acutally build a web application on your data which is the primary function of HTML DB.
Hope this helps,
Tyler
htmldb vs. iSQL*Plus
Mark A. Williams, December 05, 2003 - 8:22 pm UTC
But you need to install htmldb into each database? You can't point htmldb at other databases, right? That is, say I have 100 databases, using a single "instance" of iSQL*Plus, I can connect to any of those databases easy as pie... would I have to install htmldb into all 100 databases to use sql workshop? (Plus run an instance of http server on each host)? But I can't because not all of them are 9iR2+... I agree that htmldb can do more than "straight" sqlplus for certain "user-type activities", but use it as a sqlplus replacement tool? Of that I am not so sure...
Thanks,
Mark
December 06, 2003 - 9:04 am UTC
I cannot imagine why every database on the planet will not have htmldb in it :)
you only need "a" http server with N dads setup.
htmldb vs. iSQL*Plus
Mark A. Williams, December 06, 2003 - 10:27 am UTC
> I cannot imagine why every database on the planet will not have htmldb in it
Because every database on the planet is not 9iR2 or higher?
Seriously, since we are in a regulated environment, something as simple as a database upgrade can be a very involved task. If vendor software is only supported on 9.0, 8.1, or even 8.0, we can't upgrade those databases. So, while it would be great if we could upgrade everything to 9iR2 or 10g on release, it just is not a real possibility.
Perhaps I was reading too much into your statement about sql workshop being a replacement (as in total replacement) for sqlplus... but, for example, it is trivial to startup and shutdown a database via sqlplus - can you do that through sql workshop?
I am not "knocking" htmldb, so I hope it did not come off that way. I will have to re-install it to experiment a bit more I guess. As an aside, I do not use iSQL*Plus much myself as I prefer command-line sqlplus, but there are a few people at my shop that do use iSQL*Plus.
Thanks,
Mark
Saminathan Seerangan
Sami, December 07, 2003 - 5:02 pm UTC
Dear All,
DB version :9.2.0.4
OS: Windows 2000
Installed HTMLDB without any error.
mod-pl sql is working fine.
I invoked HTML DB admin page using the follwoing URL
</code>
http://localhost/pls/simpledad/htmldb_admin
1)The page came up with out images(this is fine, still I can type username & password)
2) After typing username & password, clicked on Login button,
it redirects me to
http://localhost/pls/simpledad/f?p=4550:10:6743357292495279243 <code>
and I got the java script error.(Object Expected)
Any idea what I would be missing here.
Got it
Sami, December 07, 2003 - 5:18 pm UTC
Alias /i/ "<HRML_DB_INSTALL_DIR>\htmldb\htmldb/images/" was missing in apache hhtpd.conf file.
Thanks
result pagination
Robert, December 11, 2003 - 4:27 pm UTC
>> i particularly enjoy the pagination of result sets!
But owa_util.cellsprint already did that years ago...
What's so impressive with HTML DB way of doing this ?
(well...it has few more presentation options)
Better algorithm or performance ?
Thanks
December 11, 2003 - 5:59 pm UTC
it does it all.
no code.
templates (change look and feel immediately)
many times -- don't even have to write the sql.
navigation (tabs, etc)
big difference between "<tr><td>KING</td><td>1234</td></tr>" and a fully navigatible application with all of the bells/whistles.
(but thanks, cellsprint was originally calls "cells_from_query" and I wrote that :)
why not to use it for big sites
A reader, December 12, 2003 - 12:51 am UTC
Hi Tom
Regarding HTP, HTF, OWA_UTIL packages
i read in your forums, you mentioned to use this technology for small to medium sites & cannot be used to build sites something of the size AMAZON.COM
Can you ellabaorate a bit more on your statement. I would like why htp , htf packages wont scale for such a high load
December 13, 2003 - 10:44 am UTC
how many users do you think amazon has for example?
Now, a simple page in html db, lets say it takes 0.05 cpu seconds.
So, you get about 20 pages per second per cpu in the IDEAL world. (if every request arrives perfectly "normal" in sequence -- (if you overload, you do not get anywhere NEAR 20 pages/second since context switching will start to kill performance)
So, say you get a big whopping 64 cpu machine. You could, in the IDEAL world, do 1,280 pages per second. (you'll never get anywhere near this).
Thats not enough so you get a cluster -- say 4 64cpu machines. Now, you might be able to do 5,000 per second (in an ideal world, never will actually happen).
That probably still isn't enough for peak processing time. That and consider the pages on amazon might take a little more then 0.05 cpu seconds.
So, you introduce caching technologies. Edge servers. move processing out of the database onto app server farms. spread it out wide and fat. You use lots of smaller (cheaper) machines (price a 64 cpu box someday).
It is just "math". I would say for most applications we ourselves (we being you, me and most people building application for the places we work), a database is all we'll ever need. For the truly "large", hugmongous, many 10's to 100's of developers building an application -- perhaps you need a different model.
To "A Reader": Why not use mod_plsql gor big sites
Jens, December 12, 2003 - 10:52 am UTC
I could imagine, that also big sites would run with mod_plsql. But nobody tried it.
Tom, do you know the biggest (hits + database size) mod_plsql-solution?
December 13, 2003 - 10:51 am UTC
No, I don't -- I do know that when I ordered my aircard from verizon wireless for my laptop, it used mod_plsql for example.
Its all over the place out there, sometimes you can see it, sometimes you cannot. mod_plsql can get you very far indeed.
cellsprint
Robert, December 12, 2003 - 3:03 pm UTC
>>(but thanks, cellsprint was originally calls "cells_from_query" and I wrote that
:)
Is that right...
I wish you put in a couple more parameters so as to have
option to display rows in alternate colors.
Do you think I should I hack it (owa_util) ?
Thanks
December 13, 2003 - 11:24 am UTC
hey -- when I wrote it -- such things did not even EXIST in html!!!
the year was 1995.... (the last mod date I have on my copy of what I called owaext - owa extensions) is March 15, 1996. Not too many wild "html" options back then. Hard to anticipate all of the new extentions that have come along.
but sure, read the code out of the database -- rename it, modify it to your hearts content (it is what i would do :)
I would not change owa_util, i would make my own.
Hack It?
Mark A. Williams, December 12, 2003 - 4:44 pm UTC
> Do you think I should I hack it (owa_util) ?
SQL> select distinct owner from all_source where name = 'OWA_UTIL';
OWNER
------------------------------
SYS
1 row selected.
Anyone want to place bets on Tom's answer?
I am, of course, not speaking for Tom, but I am gonna step out on a limb and say he might be against "hacking" stuff in the sys schema. Possibly.
- Mark
December 13, 2003 - 11:29 am UTC
;)
read it out
modify it
put it back in UNDER A DIFFERENT NAME in your OWN schema (not sys)
thats the ticket
huss, December 13, 2003 - 3:01 am UTC
dear tom ,
i never use Mod_plsql ,owa_util or htp before ! so
where can i find a good referance for Mod_plsql ,owa_util and HTML Packages ?
i need a nice referance from A to Z.
huss, December 13, 2003 - 1:25 pm UTC
Thankx tom ,
you are great :-)
You are Great
sheebs, April 11, 2005 - 9:20 am UTC
Tom,
You are really great...don't have words to xplain... :-)
Calling htp.print in SQL * Plus Session
Baiju, June 02, 2005 - 5:12 pm UTC
Hi Tom,
I'm experimenting with htp procedures.
I wrote a simple anonymous block which calls htp.print.
begin
htp.print('kkk');
end;
/
While trying to run the same block in an sqlplus session, I get the following error
SQL> begin
2 htp.print('kkk');
3 end;
4 /
begin
*
ERROR at line 1:
ORA-06502: PL/SQL: numeric or value error
ORA-06512: at "SYS.OWA_UTIL", line 325
ORA-06512: at "SYS.HTP", line 860
ORA-06512: at "SYS.HTP", line 975
ORA-06512: at line 2
But if I try to rerun the same block once again in the same session, I'm not getting the error. It runs without generating any error.
Why So?
June 02, 2005 - 6:27 pm UTC
declare
nm owa.vc_arr;
vl owa.vc_arr;
begin
nm(1) := 'x';
vl(1) := 'y';
owa.init_cgi_env( nm.count, nm, vl );
end;
/
run that first. it want's to have the "owa" environment setup.
File Open Dialogue Box Using MOD_PLSQL
Nikhilesh, May 18, 2006 - 2:45 am UTC
Dear Tom,
In our mod plsql web application application we want user to select a file and press upload so we will upload that file to database.
So Is it possible to show a file open dialogue box to user so that he can select a file to be uploaded from that.
Should I go for JAVA for this??
Please comment......
May 19, 2006 - 9:04 am UTC
you just use the <input type=file ...> tag in for your form.
Transfer file from client to database server
Nikhilesh, May 22, 2006 - 2:56 am UTC
Dear Tom,
Thanks for the last reply.........specially for such trivial question....but everything is difficult till we find a solution for it....:))
In fact I need to transfer a file from client machin to host machin so I am trying to upload a file using mod pl-sql and then will download it on the server.
Is this approach is ok for file transfer???
Please comment..........
May 22, 2006 - 7:49 am UTC
HTP.Bold
Surender Nawandar, June 19, 2006 - 3:37 am UTC
Tom,
I am populating Data from Oracle to excel using HTP package all is fine but for the following issues
1) I cant put Column headings in Excel to Bold using Htp.bold or tag the out put is like ('Column Heding1')
2) i want to put up a heading in the center of the excel file Say 'Petty Cash Satement' in blod and bigger font(12)
how can i do this
3) And in the Database there is a column which has Multi line entry from front end so the data is being stored as 'abcd||efgh||ijkl' due to this the data populated in excel file using htp cause row breaks
Please help me on these.
Thanks,
Suren
June 19, 2006 - 6:05 pm UTC
1) sure you can, excel can process html
<table>
<tr><td>c1</td><td>c2</td></tr>
<tr><td>1</td><td>2</td></tr>
</table>
put that in a file and open it, see what you see.
2) some html formatting I guess - me - I'm not "an excel expert" by any means.
3) use a table....
Result
Suren, June 20, 2006 - 8:15 am UTC
Thanks for the hint,
When i use
<table>
<tr><td>
c1</td><td>
c2</td></tr>
<tr><td>1</td><td>2</td></tr>
</table>
in Procedure xls i observed that Excel seems to put all the column names in One Cell and print it in bold all other cells disappear...I wonder if you may know the reason for this please refer to following post for my complete packaged code
</code>
http://asktom.oracle.com/pls/asktom/f?p=100:11:::::P11_QUESTION_ID:702862901988 <code>
Thanks in advance
June 20, 2006 - 10:07 am UTC
please do what I suggested perhaps on the other page where you are asking basically the same stuff. there I wrote:
......
Why not do this --
format a spreadsheet template in excel (get everything setup the way you would
like to see it)
have excel save it as html
.....................
read that, see what excel is expecting.
How would you do this
San, June 28, 2006 - 6:42 am UTC
Hi Tom,
Lets Say in future you would have an Idea to Let all Asktom users to be able to download the contents in [POPULAR] tab into an Excel sheet, For Our reference's
By click of a button (User should be able to see the Data downloaded onto the Excel and then Save it on his PC Optionally) how would you do that.. UTL_FILE (Guess ruled out as UTL_FILE_DIR would cause a hurdle in this case)
OWA_SYLK(Guess there are only two version for that the WEB version which shows HTML Pages and the UTL_FILE Version)
or how??
Just being a little innovative here :)
June 28, 2006 - 7:49 am UTC
owa_sylk would be the obvious choice in all probability.
A reader, June 28, 2006 - 7:54 am UTC
Which OWA_SYLK , i have seen this package it uses UTL_FILE in one version and the other one is for WEB PAGES i didnt see any which writes to EXCEL can you please redirect or demonstrate
June 28, 2006 - 8:07 am UTC
both "write" to excel.
If you file produced by utl_file, excel can read it.
If you use the web version - the mime type will cause excel to get the downloaded information and open it in place - "as if" you wrote it to excel (which you never really do, the browser saves the data to disk and runs excel for you)
Fancy Stuff
A reader, June 28, 2006 - 8:41 am UTC
Tom,
You told that by using owa_sylk package we can perform some fancy stuff on the XL sheet now though i refered some of the documents on SYLK i could not make out
1) how can i make Excel sheet pop up on the window of the user who desire to download the data in Excel format from OWA_SYLK.SHOW
2) How can i do formatting of cells say (BOLD,CENTER) from this utility.
Thanks in Advance
problem installing owaload.sql
ihab, October 26, 2006 - 5:21 am UTC
Dear Tom,
i can't install mod_plsql !!!!!!!!!!!
os win 2000 pro
db 9i
in sql prompt , when i run thge following command
sql> @owaload.sql log_file;
the sqlplus closed!!!
and i check the version of the OWA packages by running Select owa_util.get_version from dual
3.0.0.
so i don't no why the sql prompt is closed??
please help me????????????
thank's
ihab
October 26, 2006 - 11:58 am UTC
please utilize support for install and configuration things.
but if you edit owaload.sql, well, it would be obvious "why" it exited sqlplus.
The last line in the owaload.sql script is:
exit
MOD_PLSQL
Ihab, October 29, 2006 - 11:05 am UTC
Dear Tom ,
my oracle database version 9i
Os: win 2000 pro
in sql prompt , when i run thge following command
sql> @owaload.sql log_file;
and then i checked the "log_file" and it contain :-
OWA_DBG_MSG
--------------------------------------------------------------------------------
Installed OWA version is: 3.0.0.0.5;
Shipped OWA version is : 3.0.0.0.5;
You already have a newer version of the OWA packages
No install is required
so is that ok to use mod_plsql? or i have to install another version???
thank's for hellp
tank's
Ihab
October 29, 2006 - 12:36 pm UTC
It says so... you have the packages that should be installed in your release.
HTP, HTF, OWA_UTIL, HTML-Packages
IHAB, October 30, 2006 - 4:02 am UTC
Dear Tom,
how can i Uninstall the packages? (it's an old version 3.0.0.0.5)!
to install the new version....
thank's again Mr Tom.
thank's
ihab
October 30, 2006 - 9:05 am UTC
umm, do you HAVE newer stuff to install.
It would appear not, else it would have said "I am newer than what was installed so I dropped the old stuff and installed the new version"
HTP, HTF, OWA_UTIL, HTML-Packages
IHAB, October 31, 2006 - 12:40 pm UTC
Dear Mr. Tom,
where can i found the newer stuff ???
can you please upload "The new Packages" to your site <<file>> ??
Thank's again Mr Tom
Ihab