java.sql.SQLException: ORA-00904: "TABELA": invalid identifier"
Web application-u radim u jdeveloper-u, a DBMS je Oracle XE. Naime, gresku dobijam pri pokusaju da vrijednosti, upisana u polja, klikom na "DODAJ", dodam u bazu. Za prvu vrijednost "ID Atributa Za Multimedijalni Materijal" ("ID_A_Z_MM_M"), kao i za "Rucno upisivanje" vrijednosti prodju, ali ostale ne.
jsp stranica:
<%@ page session="true" buffer="16kb" import="java.sql.*,java.util.*,java.text.*"%>
<%@ page import="oracle.jdbc.*" %>
<%@ page contentType="text/html; charset=utf-8" %>
<% Locale locale = Locale.getDefault();
response.setLocale(locale);%>
<% session.setMaxInactiveInterval(30*60); %>
<%
String login = (String) session.getAttribute("m_n_z_status");
if (login == null || !login.equals("login")) {
response.sendRedirect("login.jsp");
response.flushBuffer();
return;
}%>
<%int ewAllowAdmin = 16;
int ewCurSec = 31;%>
<%@ include file="db.jsp" %>
<%@ include file="jspmkrfn.jsp" %>
<%
String tmpfld = null;
String escapeString = "''";
request.setCharacterEncoding("utf-8");
// Get action
String a = request.getParameter("a");
String key = "";
if (a == null || a.length() == 0) {
key = request.getParameter("key");
if (key != null && key.length() > 0) {
a = "C"; // Copy record
} else {
a = "I"; // Display blank record
}
}
Object x_ID_A_Z_MM_M = null;
Object x_Naziv_A_Z_MM_M = null;
Object x_Rucno_Upisivanje = null;
Object x_Kolona = null;
Object x_Tabela = null;
// Open Connection to the database
try{
Statement stmt = (Statement) conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
stmt.executeUpdate("ALTER SESSION SET CURRENT_SCHEMA = NIKOLA");
ResultSet rs = null;
if (a.equals("C")){ // Get a record to display
String tkey = "'" + key.replaceAll("'",escapeString) + "'";
String strsql = "SELECT * FROM \"Atribut_Za_MM_Materijal\" WHERE \"ID_A_Z_MM_M\"=" + tkey;
rs = (ResultSet) stmt.executeQuery(strsql);
if (!rs.next()){
rs.close();
rs = null;
stmt.close();
stmt = null;
conn.close();
conn = null;
out.clear();
response.sendRedirect("Atribut_Za_MM_Materijallist.jsp");
response.flushBuffer();
return;
}
rs.first();
// Get the field contents
if (rs.getString("ID_A_Z_MM_M") != null){
x_ID_A_Z_MM_M = rs.getString("ID_A_Z_MM_M");
}else{
x_ID_A_Z_MM_M = "";
}
if (rs.getString("Naziv_A_Z_MM_M") != null){
x_Naziv_A_Z_MM_M = rs.getString("Naziv_A_Z_MM_M");
}else{
x_Naziv_A_Z_MM_M = "";
}
x_Rucno_Upisivanje = String.valueOf(rs.getLong("Rucno_Upisivanje"));
if (rs.getString("Kolona") != null){
x_Kolona = rs.getString("Kolona");
}else{
x_Kolona = "";
}
if (rs.getString("Tabela") != null){
x_Tabela = rs.getString("Tabela");
}else{
x_Tabela = "";
}
rs.close();
rs = null;
}else if (a.equals("A")) { // Add
// Get fields from form
if (request.getParameter("x_ID_A_Z_MM_M") != null){
x_ID_A_Z_MM_M = (String) request.getParameter("x_ID_A_Z_MM_M");
}else{
x_ID_A_Z_MM_M = "";
}
if (request.getParameter("x_Naziv_A_Z_MM_M") != null){
x_Naziv_A_Z_MM_M = (String) request.getParameter("x_Naziv_A_Z_MM_M");
}else{
x_Naziv_A_Z_MM_M = "";
}
if (request.getParameter("x_Rucno_Upisivanje") != null){
x_Rucno_Upisivanje = (String) request.getParameter("x_Rucno_Upisivanje");
}else{
x_Rucno_Upisivanje = "";
}
if (request.getParameter("x_Kolona") != null){
x_Kolona = (String) request.getParameter("x_Kolona");
}else{
x_Kolona = "";
}
if (request.getParameter("x_Tabela") != null){
x_Tabela = (String) request.getParameter("x_Tabela");
}else{
x_Tabela = "";
}
// Open record
conn.setAutoCommit(false);
String strFileID = "\"ID_A_Z_MM_M\"";
String strField = "";
String strValues = "";
String sql = null;
String strsql = null;
tmpfld = (String) x_ID_A_Z_MM_M;
sql = "SELECT * FROM \"Atribut_Za_MM_Materijal\" WHERE " + strFileID + " = '" + tmpfld.replaceAll("'",escapeString) + "'";
Statement stmtchkpk = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
ResultSet rschkpk = stmtchkpk.executeQuery(sql);
if (rschkpk.next()) {
out.println("Duplicate key for ID, value = " + tmpfld + "<br>");
out.println("Press [Previous Page] key to continue!");
return;
}
rschkpk.close();
rschkpk = null;
strField = "\"ID_A_Z_MM_M\"" + ",";
strValues = "'" + ((String) x_ID_A_Z_MM_M).replaceAll("'",escapeString) + "',";
strValues = strValues.substring(0,strValues.length()-1);
strField = strField.substring(0,strField.length()-1);
sql = "INSERT INTO \"Atribut_Za_MM_Materijal\" (" + strField + ") VALUES (" + strValues + ")";
//out.println(sql);
stmt.execute(sql);
conn.commit();
strFileID = "\"ID_A_Z_MM_M\"";
tmpfld = "'" + ((String)x_ID_A_Z_MM_M).replaceAll("'",escapeString) + "'";
strsql = "SELECT t.* FROM \"Atribut_Za_MM_Materijal\" t WHERE " + strFileID + "=" + tmpfld + " FOR UPDATE";
rs = (ResultSet) stmt.executeQuery(strsql);
rs.first();
// Field ID_A_Z_MM_M
tmpfld = ((String) x_ID_A_Z_MM_M);
if (tmpfld == null || tmpfld.trim().length() == 0) {
tmpfld = "";
}
if (tmpfld == null) {
rs.updateNull("ID_A_Z_MM_M");
}else{
rs.updateString("ID_A_Z_MM_M", tmpfld);
}
// Field Naziv_A_Z_MM_M
tmpfld = ((String) x_Naziv_A_Z_MM_M);
if (tmpfld == null || tmpfld.trim().length() == 0) {
tmpfld = null;
}
if (tmpfld == null) {
rs.updateNull("Naziv_A_Z_MM_M");
}else{
rs.updateString("Naziv_A_Z_MM_M", tmpfld);
}
// Field Rucno_Upisivanje
tmpfld = ((String) x_Rucno_Upisivanje).trim();
if (!IsNumeric(tmpfld)) { tmpfld = null;}
if (tmpfld != null) {
rs.updateLong("Rucno_Upisivanje", Long.parseLong(tmpfld));
} else {
rs.updateNull("Rucno_Upisivanje");
}
// Field Kolona
tmpfld = ((String) x_Kolona);
if (tmpfld == null || tmpfld.trim().length() == 0) {
tmpfld = null;
}
if (tmpfld == null) {
rs.updateNull("Kolona");
}else{
rs.updateString("Kolona", tmpfld);
}
// Field Tabela
tmpfld = ((String) x_Tabela);
if (tmpfld == null || tmpfld.trim().length() == 0) {
tmpfld = null;
}
if (tmpfld == null) {
rs.updateNull("Tabela");
}else{
rs.updateString("Tabela", tmpfld);
}
rs.updateRow();
rs.close();
rs = null;
stmt.close();
stmt = null;
conn.close();
conn = null;
out.clear();
response.sendRedirect("Atribut_Za_MM_Materijallist.jsp");
response.flushBuffer();
return;
}
}catch (SQLException ex){
out.println(ex.toString());
}
%>
<%@ include file="header.jsp" %>
<p><span class="jspmaker">Dodaj u tabelu : Atribut Za MM Materijal<br>
<br>
<a href="Atribut_Za_MM_Materijallist.jsp">Povratak na listu </a></span></p>
<script language="JavaScript" src="ew.js"></script>
<script language="JavaScript">
<!-- start Javascript
function EW_checkMyForm(EW_this) {
if (EW_this.x_ID_A_Z_MM_M && !EW_hasValue(EW_this.x_ID_A_Z_MM_M, "TEXT" )) {
if (!EW_onError(EW_this, EW_this.x_ID_A_Z_MM_M, "TEXT", "Invalid Field - ID A Z MM M"))
return false;
}
if (EW_this.x_Rucno_Upisivanje && !EW_checkinteger(EW_this.x_Rucno_Upisivanje.value)) {
if (!EW_onError(EW_this, EW_this.x_Rucno_Upisivanje, "TEXT", "Incorrect integer - Rucno Upisivanje"))
return false;
}
return true;
}
// end JavaScript -->
</script>
<form onSubmit="return EW_checkMyForm(this);" action="Atribut_Za_MM_Materijaladd.jsp" method="post">
<p>
<input type="hidden" name="a" value="A">
<table width="100%" border="0" cellspacing="3" cellpadding="3" bgcolor="#CCCCCC">
<tr>
<td width="28%" bgcolor="#CC6600"><span class="jspmaker" style="color: #FFFFFF;">ID <span class="jspmaker" style="color: #FFFFFF;">Atributa Za Multimedijalni Materijal</span> </span> </td>
<td width="72%" bgcolor="#DCDCDC"><span class="jspmaker">
<input type="text" name="x_ID_A_Z_MM_M" size="30" maxlength="20" value="<%= HTMLEncode((String)x_ID_A_Z_MM_M) %>"></span> </td>
</tr>
<tr>
<td bgcolor="#CC6600"><span class="jspmaker" style="color: #FFFFFF;">Naziv <span class="jspmaker" style="color: #FFFFFF;">Atributa Za Multimedijalni Materijal</span> </span> </td>
<td bgcolor="#DCDCDC"><span class="jspmaker"><input type="text" name="x_Naziv_A_Z_MM_M" size="30" maxlength="20" value="<%= HTMLEncode((String)x_Naziv_A_Z_MM_M) %>"></span> </td>
</tr>
<tr>
<td bgcolor="#CC6600"><span class="jspmaker" style="color: #FFFFFF;">Rucno Upisivanje</span> </td>
<td bgcolor="#DCDCDC"><span class="jspmaker"><input type="text" name="x_Rucno_Upisivanje" size="30" value="<%= HTMLEncode((String)x_Rucno_Upisivanje) %>"></span> </td>
</tr>
<tr>
<td bgcolor="#CC6600"><span class="jspmaker" style="color: #FFFFFF;">Kolona</span> </td>
<td bgcolor="#DCDCDC"><span class="jspmaker"><input type="text" name="x_Kolona" size="30" maxlength="20" value="<%= HTMLEncode((String)x_Kolona) %>"></span> </td>
</tr>
<tr>
<td bgcolor="#CC6600"><span class="jspmaker" style="color: #FFFFFF;">Tabela</span> </td>
<td bgcolor="#DCDCDC"><span class="jspmaker"><input type="text" name="x_Tabela" size="30" maxlength="20" value="<%= HTMLEncode((String)x_Tabela) %>"></span> </td>
</tr>
</table>
<p>
<input type="submit" name="Action" value="DODAJ">
</form>
<%@ include file="footer.jsp" %>
...a evo i sql skript, preko koga sam dobio tabele u Oracle-u, u koliko je mozda u njemu problem:
/*
Created 10/2/2007
Modified 10/2/2007
Project
Model
Company
Author
Version
Database Oracle 10g
*/
Drop table "Tip_Sadrzaja"
/
Drop table "Tip_Lokacije_MM_Sadrzaja"
/
Drop table "Multimedijalni_Materijal"
/
Drop table "MM_Materijal_Na_Mediju"
/
Drop table "Atribut_Za_Tip_Sadrzaja"
/
Drop table "Medij"
/
Drop table "Atribut_Za_MM_Materijal"
/
Drop table "Vrijednost_Atrib_Za_MM_M"
/
Drop table "Izvodjaci"
/
Drop table "Tip_Izvodjaca"
/
Drop table "Format"
/
Drop table "Tip_Medija"
/
Drop table "Osnovna_Tema"
/
-- Create Types section
-- Create Tables section
Create table "Osnovna_Tema" (
"ID_O_T" Varchar2(20) NOT NULL ,
"Naziv_OT" Varchar2(20),
"ID_T_S" Varchar2(20) NOT NULL ,
primary key ("ID_O_T","ID_T_S")
)
/
Create table "Tip_Medija" (
"ID_T_M" Varchar2(20) NOT NULL ,
"Naziv_T_M" Varchar2(20),
primary key ("ID_T_M")
)
/
Create table "Format" (
"ID_F" Varchar2(20) NOT NULL ,
"Naziv_F" Varchar2(20),
primary key ("ID_F")
)
/
Create table "Tip_Izvodjaca" (
"ID_T_I" Varchar2(20) NOT NULL ,
"Naziv_T_I" Varchar2(20),
primary key ("ID_T_I")
)
/
Create table "Izvodjaci" (
"Redni_Broj_I" Varchar2(20) NOT NULL ,
"Naziv_I" Varchar2(20),
"ID_T_I" Varchar2(20) NOT NULL ,
primary key ("Redni_Broj_I","ID_T_I")
)
/
Create table "Vrijednost_Atrib_Za_MM_M" (
"Vrijednost_A_MM_M" Varchar2(20),
"ID_A_Z_MM_M" Varchar2(20) NOT NULL ,
"ID_T_S" Varchar2(20) NOT NULL ,
"ID_MM_M" Varchar2(20) NOT NULL ,
primary key ("ID_A_Z_MM_M","ID_T_S","ID_MM_M")
)
/
Create table "Atribut_Za_MM_Materijal" (
"ID_A_Z_MM_M" Varchar2(20) NOT NULL ,
"Naziv_A_Z_MM_M" Varchar2(20),
"Rucno_Upisivanje" Integer,
"Kolona" Varchar2(20),
"Tabela" Varchar2(20),
primary key ("ID_A_Z_MM_M")
)
/
Create table "Medij" (
"ID_M" Varchar2(20) NOT NULL ,
"Kolicina_M" Integer NOT NULL ,
"ID_T_M" Varchar2(20) NOT NULL UNIQUE ,
"ID_F" Varchar2(20) NOT NULL UNIQUE ,
primary key ("ID_M")
)
/
Create table "Atribut_Za_Tip_Sadrzaja" (
"ID_A_Z_MM_M" Varchar2(20) NOT NULL ,
"ID_T_S" Varchar2(20) NOT NULL ,
primary key ("ID_A_Z_MM_M","ID_T_S")
)
/
Create table "MM_Materijal_Na_Mediju" (
"ID_MM_M" Varchar2(20) NOT NULL ,
"ID_M" Varchar2(20) NOT NULL ,
primary key ("ID_MM_M","ID_M")
)
/
Create table "Multimedijalni_Materijal" (
"ID_MM_M" Varchar2(20) NOT NULL ,
"Skraceni_Naziv_M_M" Varchar2(20),
"Lokacija_M_M" Varchar2(20),
"Putanja_M_M" Varchar2(20),
"Naziv_Medija_M_M" Varchar2(20),
"ID_O_T" Varchar2(20) NOT NULL ,
"ID_T_S" Varchar2(20) NOT NULL ,
"ID_T_L_MM_S" Varchar2(20) NOT NULL ,
"URL" Varchar2(20),
"Zemlja" Varchar2(20),
"Godina" Varchar2(20),
"Naziv_Pjesme" Varchar2(20),
"Naziv_Albuma" Varchar2(20),
"Vrsta_Muzike" Varchar2(20),
primary key ("ID_MM_M")
)
/
Create table "Tip_Lokacije_MM_Sadrzaja" (
"ID_T_L_MM_S" Varchar2(20) NOT NULL ,
"Naziv_T_L_MM_S" Varchar2(20),
"Download_Mogucnost" Integer,
primary key ("ID_T_L_MM_S")
)
/
Create table "Tip_Sadrzaja" (
"ID_T_S" Varchar2(20) NOT NULL ,
"Naziv_T_S" Varchar2(20),
primary key ("ID_T_S")
)
/
-- Create Alternate keys section
-- Create Indexes section
-- Create Foreign keys section
Alter table "Multimedijalni_Materijal" add foreign key ("ID_O_T","ID_T_S") references "Osnovna_Tema" ("ID_O_T","ID_T_S")
/
Alter table "Medij" add foreign key ("ID_T_M") references "Tip_Medija" ("ID_T_M")
/
Alter table "Medij" add foreign key ("ID_F") references "Format" ("ID_F")
/
Alter table "Izvodjaci" add foreign key ("ID_T_I") references "Tip_Izvodjaca" ("ID_T_I")
/
Alter table "Atribut_Za_Tip_Sadrzaja" add foreign key ("ID_A_Z_MM_M") references "Atribut_Za_MM_Materijal" ("ID_A_Z_MM_M")
/
Alter table "MM_Materijal_Na_Mediju" add foreign key ("ID_M") references "Medij" ("ID_M")
/
Alter table "Vrijednost_Atrib_Za_MM_M" add foreign key ("ID_A_Z_MM_M","ID_T_S") references "Atribut_Za_Tip_Sadrzaja" ("ID_A_Z_MM_M","ID_T_S")
/
Alter table "Vrijednost_Atrib_Za_MM_M" add foreign key ("ID_MM_M") references "Multimedijalni_Materijal" ("ID_MM_M")
/
Alter table "MM_Materijal_Na_Mediju" add foreign key ("ID_MM_M") references "Multimedijalni_Materijal" ("ID_MM_M")
/
Alter table "Multimedijalni_Materijal" add foreign key ("ID_T_L_MM_S") references "Tip_Lokacije_MM_Sadrzaja" ("ID_T_L_MM_S")
/
Alter table "Osnovna_Tema" add foreign key ("ID_T_S") references "Tip_Sadrzaja" ("ID_T_S")
/
Alter table "Atribut_Za_Tip_Sadrzaja" add foreign key ("ID_T_S") references "Tip_Sadrzaja" ("ID_T_S")
/
-- Create Object Tables section
-- Create XMLType Tables section
-- Create Procedures section
-- Create Functions section
-- Create Views section
-- Create Sequences section
-- Create Triggers from referential integrity section
-- Create user Triggers section
-- Create Packages section
-- Create Synonyms section
-- Create Roles section
-- Users Permissions to roles section
-- Roles Permissions section
/* Roles permissions */
-- User Permissions section
/* Users permissions */
-- Create Table comments section
-- Create Attribute comments section
-- After section
Unaprijed hvala svima na pomoci!