Hi Jason,
I don't think the LABEL ON is supported in Derby. But to use your example for a table, I could achieve the same in the following way using
ResultSetMetaData:
Table:
=====
create table aTable(id INTEGER NOT NULL, name VARCHAR(255) NOT NULL, description VARCHAR(255))
Select Statement:
============
SELECT id as "The First Column" , name as "The Second Column", description as DESC_DETAILS FROM aTable
The select method : =============
private void selectRows() throws SQLException{
String sql="SELECT id as \"The First Column\" , name as \"The Second Column\", description as DESC_DETAILS FROM aTable ";
stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
int numberCols = rsmd.getColumnCount();
for(int i=1; i<=numberCols; i++)
{
System.out.print(rsmd.getColumnLabel(i)+" | "); //print the NEW Column names
}
System.out.println("\n");
while(rs.next()){
System.out.println(rs.getInt(1)+"\t | "+rs.getString(2)+"\t | "+rs.getString(3)+" ");
}
stmt.close();
}
The output of the above select shows:
The First Column | The Second Column | DESC_DETAILS |
0 | NAME 0 | DESCRIPTION for 0 1 | NAME 1 | DESCRIPTION for 1 2 | NAME 2 | DESCRIPTION for 2 3 | NAME 3 | DESCRIPTION for 3 4 | NAME 4 | DESCRIPTION for 4
The ResultSetMetaData returns the column names used in the Select query above. Needless to say,
the above works per statement. Hope the above helps.
-Rajesh
Jason Palmatier wrote:
Hi Rajesh,
The select isn't what I'm looking for in this case. I'm trying to create a table and then set the value that would be returned by the ResultSetMetaData call getColumnLabel():
ResultSet rs = stmt.executeQuery("SELECT COLUMN1,
USERNAME FROM myTable");
ResultSetMetaData rsmd = rs.getMetaData();
int numberCols = rsmd.getColumnCount();
for(int i=0; i<numberCols; i++)
{
System.out.println("Column " + i + " Label: " + rsmd.getColumnLabel(i); }
This usually returns a String that can be used for the
human readable column heading when a table's contents
are displayed. After you execute a CREATE TABLE
statement you would follow it with a
LABEL ON COLUMN myTable ( COLUMN1 is 'The First Column', COLUMN2 is 'The Second Column', USERNAME is 'User Name', PASSWORD is 'User Password' );
This would set the labels for the specified columns in the table "myTable" (this is DB2 syntax on an iSeries). I didn't find the LABEL ON command in the Derby Reference manual so I was wondering if there was another way to do this in Derby. Does that make sense?
Thanks for the reply, Jason
--- Rajesh Kartha <[EMAIL PROTECTED]> wrote:
Hi,
Is 'Select <col> as from <table>' , what you are looking for.
The schema: -------------- ij> select * from atab; ID |COL1|COL2 --------------------- 1 |CA |MI
1 row selected
Using the 'select as' ------------------------
ij> select id as IDENT_NUM from atab; IDENT_NUM ----------- 1
1 row selected
-Rajesh
Jason Palmatier wrote:
Does Derby support anything like LABEL ON whichallows
you to set the label (i.e. a displayable name) fora
column after a table is created? I checked thewanted
reference manual and it doesn't seem to but I
protection aroundto ask here to be sure.
Thanks, Jason
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam
http://mail.yahoo.com
__________________________________ Do you Yahoo!? Yahoo! Mail - 250MB free storage. Do more. Manage less. http://info.mail.yahoo.com/mail_250
