KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > opensubsystems > blog > persist > db > sapdb > SapDBBlogDatabaseSchema


1 /*
2  * Copyright (c) 2006 - 2007 OpenSubsystems s.r.o. Slovak Republic. All rights reserved.
3  *
4  * Project: OpenChronicle
5  *
6  * $Id: SapDBBlogDatabaseSchema.java,v 1.8 2007/02/20 01:58:05 bastafidli Exp $
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; version 2 of the License.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20  */

21
22 package org.opensubsystems.blog.persist.db.sapdb;
23
24 import java.sql.Connection JavaDoc;
25 import java.sql.SQLException JavaDoc;
26 import java.sql.Statement JavaDoc;
27 import java.util.logging.Level JavaDoc;
28 import java.util.logging.Logger JavaDoc;
29
30 import org.opensubsystems.blog.data.Blog;
31 import org.opensubsystems.blog.data.Entry;
32 import org.opensubsystems.blog.persist.db.BlogDatabaseSchema;
33 import org.opensubsystems.core.error.OSSException;
34 import org.opensubsystems.core.util.DatabaseUtils;
35 import org.opensubsystems.core.util.Log;
36
37 /**
38  * Database specific operations related to persistence of blogs and their
39  * entries. This class encapsulate functionality specific for SapDB.
40  *
41  * @version $Id: SapDBBlogDatabaseSchema.java,v 1.8 2007/02/20 01:58:05 bastafidli Exp $
42  * @author Julian Legeny
43  * @code.reviewer Miro Halas
44  * @code.reviewed 1.4 2006/07/21 00:54:57 jlegeny
45  */

46 public class SapDBBlogDatabaseSchema extends BlogDatabaseSchema
47 {
48    /*
49       Use autogenerated numbers for IDs using sequence
50       Name all constraints to easily identify them later.
51
52       CREATE TABLE BF_BLOG
53       (
54          ID SERIAL,
55          DOMAIN_ID INTEGER NOT NULL,
56          FOLDER VARCHAR(50) NOT NULL,
57          CAPTION VARCHAR(1024) NOT NULL,
58          COMMENTS VARCHAR(8000) NOT NULL,
59          CREATION_DATE TIMESTAMP NOT NULL,
60          MODIFICATION_DATE TIMESTAMP NOT NULL,
61          CONSTRAINT BF_BLOG_PK PRIMARY KEY (ID),
62          CONSTRAINT BF_BLOG_FLDR_UQ UNIQUE (FOLDER)
63          // CONSTRAINT BF_BLOGDOM_FK FOREIGN KEY (DOMAIN_ID)
64          // REFERENCES BF_DOMAIN (ID) ON DELETE CASCADE
65       )
66
67
68       CREATE DBPROCEDURE INSERT_BF_BLOG
69       (
70          IN IN_DOMAIN_ID INTEGER,
71          IN IN_FOLDER VARCHAR(50),
72          IN IN_CAPTION VARCHAR(1024),
73          IN IN_COMMENTS VARCHAR(8000),
74          OUT OUT_KEY INTEGER,
75          OUT OUT_TIMESTAMP TIMESTAMP
76       )
77       AS
78       TRY
79          SET OUT_TIMESTAMP = now();
80          INSERT INTO " + strUserName + ".BF_BLOG(DOMAIN_ID, FOLDER,
81             CAPTION, COMMENTS, CREATION_DATE, MODIFICATION_DATE)
82             VALUES (:IN_DOMAIN_ID, :IN_FOLDER, :IN_CAPTION,
83             :IN_COMMENTS, :OUT_TIMESTAMP, :OUT_TIMESTAMP);
84          SET OUT_KEY = " + strUserName + ".BF_BLOG.CURRVAL;
85       CATCH
86          IF $RC <> 0 THEN STOP ($RC, $ERRMSG);
87
88
89       CREATE DBPROCEDURE UPDATE_BF_BLOG
90       (
91          IN IN_FOLDER VARCHAR(50),
92          IN IN_CAPTION VARCHAR(1024),
93          IN IN_COMMENTS VARCHAR(8000),
94          IN IN_BLOG_ID INTEGER,
95          IN IN_DOMAIN_ID INTEGER,
96          IN IN_MODIFICATION_DATE TIMESTAMP,
97          OUT OUT_TIMESTAMP TIMESTAMP
98       )
99       AS
100       TRY
101          SET OUT_TIMESTAMP = now();
102          UPDATE " + strUserName + ".BF_BLOG SET FOLDER = :IN_FOLDER, CAPTION = :IN_CAPTION,
103                 COMMENTS = :IN_COMMENTS, MODIFICATION_DATE = :OUT_TIMESTAMP
104                 WHERE ID = :IN_BLOG_ID AND DOMAIN_ID = :IN_DOMAIN_ID
105                 AND MODIFICATION_DATE = :IN_MODIFICATION_DATE;
106       CATCH
107          IF $RC <> 0 THEN STOP ($RC, $ERRMSG);
108
109
110       CREATE TABLE BF_BLOG_ENTRY
111       (
112          ID SERIAL,
113          DOMAIN_ID INTEGER NOT NULL,
114          BLOG_ID INTEGER NOT NULL,
115          CAPTION VARCHAR(1024) NOT NULL,
116          COMMENTS VARCHAR(8000) NOT NULL,
117          IMAGEURL VARCHAR(1024) NOT NULL,
118          TARGETURL VARCHAR(1024) NOT NULL,
119          CREATION_DATE TIMESTAMP NOT NULL,
120          MODIFICATION_DATE TIMESTAMP NOT NULL,
121          CONSTRAINT BF_BLOGENTR_PK PRIMARY KEY (ID),
122          CONSTRAINT BF_BLOGENTR_FK FOREIGN KEY (BLOG_ID)
123             REFERENCES BF_BLOG (ID) ON DELETE CASCADE
124          // CONSTRAINT BF_BLOGENTRDOM_FK FOREIGN KEY (DOMAIN_ID)
125          // REFERENCES BF_DOMAIN (ID) ON DELETE CASCADE
126       )
127
128
129       CREATE DBPROCEDURE INSERT_BF_BLOGENTR
130       (
131          IN IN_DOMAIN_ID INTEGER,
132          IN IN_BLOG_ID INTEGER,
133          IN IN_CAPTION VARCHAR(1024),
134          IN IN_COMMENTS VARCHAR(8000),
135          IN IN_IMAGEURL VARCHAR(1024),
136          IN IN_TARGETURL VARCHAR(1024),
137          OUT OUT_KEY INTEGER,
138          OUT OUT_TIMESTAMP TIMESTAMP
139       )
140       AS
141       TRY
142          SET OUT_TIMESTAMP = now();
143          INSERT INTO " + strUserName + ".BF_BLOG_ENTRY(DOMAIN_ID, BLOG_ID,
144             CAPTION, COMMENTS, IMAGEURL, TARGETURL, CREATION_DATE, MODIFICATION_DATE)
145             VALUES (:IN_DOMAIN_ID, :IN_BLOG_ID, :IN_CAPTION,
146             :IN_COMMENTS, :IN_IMAGEURL, :IN_TARGETURL, :OUT_TIMESTAMP, :OUT_TIMESTAMP);
147          SET OUT_KEY = " + strUserName + ".BF_BLOG_ENTRY.CURRVAL;
148       CATCH
149          IF $RC <> 0 THEN STOP ($RC, $ERRMSG);
150
151
152       CREATE DBPROCEDURE UPDATE_BF_BLOGENTR
153       (
154          IN IN_CAPTION VARCHAR(1024),
155          IN IN_COMMENTS VARCHAR(8000),
156          IN IN_IMAGEURL VARCHAR(1024),
157          IN IN_TARGETURL VARCHAR(1024),
158          IN IN_ENTRY_ID INTEGER,
159          IN IN_DOMAIN_ID INTEGER,
160          IN IN_MODIFICATION_DATE TIMESTAMP,
161          OUT OUT_TIMESTAMP TIMESTAMP
162       )
163       AS
164       TRY
165          SET OUT_TIMESTAMP = now();
166          UPDATE " + strUserName + ".BF_BLOG_ENTRY SET CAPTION = :IN_CAPTION,
167                 COMMENTS = :IN_COMMENTS, IMAGEURL = :IN_IMAGEURL,
168                 TARGETURL= :IN_TARGETURL, MODIFICATION_DATE = :OUT_TIMESTAMP
169                 WHERE ID = :IN_ENTRY_ID AND DOMAIN_ID = :IN_DOMAIN_ID
170                 AND MODIFICATION_DATE = :IN_MODIFICATION_DATE;
171       CATCH
172          IF $RC <> 0 THEN STOP ($RC, $ERRMSG);
173    */

174
175    // Constants ////////////////////////////////////////////////////////////////
176

177    /**
178     * Maximal length of blog comments.
179     * Restriction for VARCHAR type is max. 8000 characters for SapDB/MaxDB.
180     * There are also next restrictions for columns:
181     * 1. The total length of the output columns cannot exceed 8084 bytes.
182     * 2. The total length of the output columns, together with the columns
183     * specified in the ORDER or GROUP clause, cannot exceed 8084 bytes.
184     * 3. The total length of the output columns, together with the correlated
185     * columns and columns of predicates that contain a subquery, cannot
186     * exceed 4048 bytes in an SQL statement with correlated subqueries.
187     * read more at:
188     * http://dev.mysql.com/doc/maxdb/en/be/9970fc050e11d2a96c00a0c9449261/content.htm
189     */

190    public static final int BLOG_COMMENTS_MAXLENGTH_SAPDB = 6900;
191    
192    /**
193     * Maximal length of blog entry comments.
194     * Restriction for VARCHAR type is max. 8000 characters for SapDB/MaxDB.
195     * There are also next restrictions for columns:
196     * 1. The total length of the output columns cannot exceed 8084 bytes.
197     * 2. The total length of the output columns, together with the columns
198     * specified in the ORDER or GROUP clause, cannot exceed 8084 bytes.
199     * 3. The total length of the output columns, together with the correlated
200     * columns and columns of predicates that contain a subquery, cannot
201     * exceed 4048 bytes in an SQL statement with correlated subqueries.
202     * read more at:
203     * http://dev.mysql.com/doc/maxdb/en/be/9970fc050e11d2a96c00a0c9449261/content.htm
204     */

205    public static final int BLOGENTRY_COMMENTS_MAXLENGTH_SAPDB = 4900;
206    
207    // Cached values ////////////////////////////////////////////////////////////
208

209    /**
210     * Logger for this class
211     */

212    private static Logger JavaDoc s_logger = Log.getInstance(SapDBBlogDatabaseSchema.class);
213
214    // Constructors /////////////////////////////////////////////////////////////
215

216    /**
217     * Static initializer
218     */

219    static
220    {
221       // Setup maximal length of individual fields for Sap DB database
222
Blog.setCommentsMaxLength(BLOG_COMMENTS_MAXLENGTH_SAPDB);
223       Entry.setCommentsMaxLength(BLOGENTRY_COMMENTS_MAXLENGTH_SAPDB);
224    }
225
226    /**
227     * Default constructor.
228     *
229     * @throws OSSException - error occured.
230     */

231    public SapDBBlogDatabaseSchema(
232    ) throws OSSException
233    {
234       super();
235    }
236
237    // Public methods ///////////////////////////////////////////////////////////
238

239    /**
240     * {@inheritDoc}
241     */

242    public void create(
243       Connection JavaDoc cntDBConnection,
244       String JavaDoc strUserName
245    ) throws SQLException JavaDoc
246    {
247       Statement JavaDoc stmQuery = null;
248       try
249       {
250          stmQuery = cntDBConnection.createStatement();
251
252          if (stmQuery.execute(
253             "create table BF_BLOG" + NL +
254             "(" + NL +
255             " ID SERIAL," + NL +
256             " DOMAIN_ID INTEGER NOT NULL," + NL +
257             " FOLDER VARCHAR(" + BLOG_FOLDER_MAXLENGTH + ") NOT NULL," + NL +
258             " CAPTION VARCHAR(" + BLOG_CAPTION_MAXLENGTH + ") NOT NULL," + NL +
259             " COMMENTS VARCHAR(" + BLOG_COMMENTS_MAXLENGTH_SAPDB + ") NOT NULL," + NL +
260             " CREATION_DATE TIMESTAMP NOT NULL," + NL +
261             " MODIFICATION_DATE TIMESTAMP NOT NULL," + NL +
262             " CONSTRAINT BF_BLOG_PK PRIMARY KEY (ID)," + NL +
263             // " CONSTRAINT BF_BLOGDOM_FK FOREIGN KEY (DOMAIN_ID)" + NL +
264
// " REFERENCES BF_DOMAIN (ID) ON DELETE CASCADE," + NL +
265
" CONSTRAINT BF_BLOG_FLDR_UQ UNIQUE (FOLDER)" + NL +
266             ")"))
267          {
268             // Close any results
269
stmQuery.getMoreResults(Statement.CLOSE_ALL_RESULTS);
270          }
271          s_logger.log(Level.FINEST, "Table BF_BLOG created.");
272
273          ///////////////////////////////////////////////////////////////////////
274

275          if (stmQuery.execute(
276             "CREATE DBPROCEDURE INSERT_BF_BLOG " + NL +
277             "( " + NL +
278             " IN IN_DOMAIN_ID INTEGER, " + NL +
279             " IN IN_FOLDER VARCHAR(" + BLOG_FOLDER_MAXLENGTH + "), " + NL +
280             " IN IN_CAPTION VARCHAR(" + BLOG_CAPTION_MAXLENGTH + "), " + NL +
281             " IN IN_COMMENTS VARCHAR(" + BLOG_COMMENTS_MAXLENGTH_SAPDB + "), " + NL +
282             " OUT OUT_KEY INTEGER, " + NL +
283             " OUT OUT_TIMESTAMP TIMESTAMP " + NL +
284             ") " + NL +
285             "AS " + NL +
286             "TRY " + NL +
287             " SET OUT_TIMESTAMP = now(); " + NL +
288             " INSERT INTO " + strUserName + ".BF_BLOG(DOMAIN_ID, FOLDER, " + NL +
289             " CAPTION, COMMENTS, CREATION_DATE, MODIFICATION_DATE) " + NL +
290             " VALUES (:IN_DOMAIN_ID, :IN_FOLDER, :IN_CAPTION, " + NL +
291             " :IN_COMMENTS, :OUT_TIMESTAMP, :OUT_TIMESTAMP); " + NL +
292             " SET OUT_KEY = " + strUserName + ".BF_BLOG.CURRVAL;" + NL +
293             "CATCH" + NL +
294             " IF $RC <> 0 THEN STOP ($RC, $ERRMSG);"))
295          {
296             // Close any results
297
stmQuery.getMoreResults(Statement.CLOSE_ALL_RESULTS);
298          }
299          s_logger.log(Level.FINEST, "Procedure INSERT_BF_BLOG created.");
300
301          ///////////////////////////////////////////////////////////////////////
302

303          if (stmQuery.execute(
304             "CREATE DBPROCEDURE UPDATE_BF_BLOG " + NL +
305             "( " + NL +
306             " IN IN_FOLDER VARCHAR(" + BLOG_FOLDER_MAXLENGTH + "), " + NL +
307             " IN IN_CAPTION VARCHAR(" + BLOG_CAPTION_MAXLENGTH + "), " + NL +
308             " IN IN_COMMENTS VARCHAR(" + BLOG_COMMENTS_MAXLENGTH_SAPDB + "), " + NL +
309             " IN IN_BLOG_ID INTEGER, " + NL +
310             " IN IN_DOMAIN_ID INTEGER, " + NL +
311             " IN IN_MODIFICATION_DATE TIMESTAMP, " + NL +
312             " OUT OUT_TIMESTAMP TIMESTAMP " + NL +
313             ") " + NL +
314             "AS " + NL +
315             "TRY " + NL +
316             " SET OUT_TIMESTAMP = now(); " + NL +
317             " UPDATE " + strUserName + ".BF_BLOG SET FOLDER = :IN_FOLDER, " + NL +
318             " CAPTION = :IN_CAPTION, COMMENTS = :IN_COMMENTS, " + NL +
319             " MODIFICATION_DATE = :OUT_TIMESTAMP WHERE ID = :IN_BLOG_ID " + NL +
320             " AND DOMAIN_ID = :IN_DOMAIN_ID " + NL +
321             " AND MODIFICATION_DATE = :IN_MODIFICATION_DATE; " + NL +
322             "CATCH" + NL +
323             " IF $RC <> 0 THEN STOP ($RC, $ERRMSG);"))
324          {
325             // Close any results
326
stmQuery.getMoreResults(Statement.CLOSE_ALL_RESULTS);
327          }
328          s_logger.log(Level.FINEST, "Procedure UPDATE_BF_BLOG created.");
329
330          ///////////////////////////////////////////////////////////////////////
331

332          if (stmQuery.execute(
333             "create table BF_BLOG_ENTRY" + NL +
334             "(" + NL +
335             " ID SERIAL," + NL +
336             " DOMAIN_ID INTEGER NOT NULL," + NL +
337             " BLOG_ID INTEGER NOT NULL," + NL +
338             " CAPTION VARCHAR(" + BLOGENTRY_CAPTION_MAXLENGTH + ") NOT NULL," + NL +
339             " COMMENTS VARCHAR(" + BLOGENTRY_COMMENTS_MAXLENGTH_SAPDB + ") NOT NULL," + NL +
340             " IMAGEURL VARCHAR(" + BLOGENTRY_IMAGEURL_MAXLENGTH + ") NOT NULL," + NL +
341             " TARGETURL VARCHAR(" + BLOGENTRY_TARGETURL_MAXLENGTH + ") NOT NULL," + NL +
342             " CREATION_DATE TIMESTAMP NOT NULL," + NL +
343             " MODIFICATION_DATE TIMESTAMP NOT NULL," + NL +
344             " CONSTRAINT BF_BLOGENTR_PK PRIMARY KEY (ID)," + NL +
345             // " CONSTRAINT BF_BLOGENTRDOM_FK FOREIGN KEY (DOMAIN_ID)" + NL +
346
// " REFERENCES BF_DOMAIN (ID) ON DELETE CASCADE," + NL +
347
" CONSTRAINT BF_BLOGENTR_FK FOREIGN KEY (BLOG_ID)" + NL +
348             " REFERENCES BF_BLOG (ID) ON DELETE CASCADE" + NL +
349             ")"))
350          {
351             // Close any results
352
stmQuery.getMoreResults(Statement.CLOSE_ALL_RESULTS);
353          }
354          s_logger.log(Level.FINEST, "Table BF_BLOG_ENTRY created.");
355          
356          ///////////////////////////////////////////////////////////////////////
357

358          if (stmQuery.execute(
359             "CREATE DBPROCEDURE INSERT_BF_BLOGENTR" + NL +
360             "(" + NL +
361             " IN IN_DOMAIN_ID INTEGER," + NL +
362             " IN IN_BLOG_ID INTEGER," + NL +
363             " IN IN_CAPTION VARCHAR(" + BLOGENTRY_CAPTION_MAXLENGTH + ")," + NL +
364             " IN IN_COMMENTS VARCHAR(" + BLOGENTRY_COMMENTS_MAXLENGTH_SAPDB + ")," + NL +
365             " IN IN_IMAGEURL VARCHAR(" + BLOGENTRY_IMAGEURL_MAXLENGTH + ")," + NL +
366             " IN IN_TARGETURL VARCHAR(" + BLOGENTRY_TARGETURL_MAXLENGTH + ")," + NL +
367             " OUT OUT_KEY INTEGER," + NL +
368             " OUT OUT_TIMESTAMP TIMESTAMP" + NL +
369             ") " + NL +
370             "AS " + NL +
371             "TRY " + NL +
372             " SET OUT_TIMESTAMP = now(); " + NL +
373             " INSERT INTO " + strUserName + ".BF_BLOG_ENTRY(DOMAIN_ID, BLOG_ID, " + NL +
374             " CAPTION, COMMENTS, IMAGEURL, TARGETURL, CREATION_DATE, MODIFICATION_DATE)" + NL +
375             " VALUES (:IN_DOMAIN_ID, :IN_BLOG_ID, :IN_CAPTION, " + NL +
376             " :IN_COMMENTS, :IN_IMAGEURL, :IN_TARGETURL, :OUT_TIMESTAMP, " +
377             " :OUT_TIMESTAMP);" + NL +
378             " SET OUT_KEY = " + strUserName + ".BF_BLOG_ENTRY.CURRVAL;" + NL +
379             "CATCH" + NL +
380             " IF $RC <> 0 THEN STOP ($RC, $ERRMSG);"))
381          {
382             // Close any results
383
stmQuery.getMoreResults(Statement.CLOSE_ALL_RESULTS);
384          }
385          s_logger.log(Level.FINEST, "Table INSERT_BF_BLOGENTR created.");
386          
387          ///////////////////////////////////////////////////////////////////////
388

389          if (stmQuery.execute(
390             "CREATE DBPROCEDURE UPDATE_BF_BLOGENTR" + NL +
391             "(" + NL +
392             " IN IN_CAPTION VARCHAR(" + BLOGENTRY_CAPTION_MAXLENGTH + ")," + NL +
393             " IN IN_COMMENTS VARCHAR(" + BLOGENTRY_COMMENTS_MAXLENGTH_SAPDB + ")," + NL +
394             " IN IN_IMAGEURL VARCHAR(" + BLOGENTRY_IMAGEURL_MAXLENGTH + ")," + NL +
395             " IN IN_TARGETURL VARCHAR(" + BLOGENTRY_TARGETURL_MAXLENGTH + ")," + NL +
396             " IN IN_ENTRY_ID INTEGER," + NL +
397             " IN IN_DOMAIN_ID INTEGER," + NL +
398             " IN IN_MODIFICATION_DATE TIMESTAMP," + NL +
399             " OUT OUT_TIMESTAMP TIMESTAMP" + NL +
400             ") " + NL +
401             "AS " + NL +
402             "TRY " + NL +
403             " SET OUT_TIMESTAMP = now(); " + NL +
404             " UPDATE " + strUserName + ".BF_BLOG_ENTRY SET CAPTION = :IN_CAPTION," + NL +
405             " COMMENTS = :IN_COMMENTS, IMAGEURL = :IN_IMAGEURL, " + NL +
406             " TARGETURL = :IN_TARGETURL," + NL +
407             " MODIFICATION_DATE = :OUT_TIMESTAMP WHERE ID = :IN_ENTRY_ID " +
408             " AND DOMAIN_ID = :IN_DOMAIN_ID " + NL +
409             " AND MODIFICATION_DATE = :IN_MODIFICATION_DATE;" + NL +
410             "CATCH" + NL +
411             " IF $RC <> 0 THEN STOP ($RC, $ERRMSG);"))
412          {
413             // Close any results
414
stmQuery.getMoreResults(Statement.CLOSE_ALL_RESULTS);
415          }
416          s_logger.log(Level.FINEST, "Table UPDATE_BF_BLOGENTR created.");
417       }
418       catch (SQLException JavaDoc sqleExc)
419       {
420          s_logger.log(Level.WARNING,
421                       "Failed to create schema " + BLOG_SCHEMA_NAME, sqleExc);
422          throw sqleExc;
423       }
424       finally
425       {
426          DatabaseUtils.closeStatement(stmQuery);
427       }
428    }
429
430    /**
431     * {@inheritDoc}
432     */

433    public String JavaDoc getInsertBlogAndFetchGeneratedValues(
434    ) throws OSSException
435    {
436       return "call INSERT_BF_BLOG (?, ?, ?, ?, ?, ?)";
437    }
438
439    /**
440     * {@inheritDoc}
441     */

442    public String JavaDoc getUpdateBlogAndFetchGeneratedValues(
443    ) throws OSSException
444    {
445       return "call UPDATE_BF_BLOG (?, ?, ?, ?, ?, ?, ?)";
446    }
447
448    /**
449     * {@inheritDoc}
450     */

451    public String JavaDoc getInsertEntryAndFetchGeneratedValues(
452    ) throws OSSException
453    {
454       return "call INSERT_BF_BLOGENTR (?, ?, ?, ?, ?, ?, ?, ?)";
455    }
456
457    /**
458     * {@inheritDoc}
459     */

460    public String JavaDoc getUpdateEntryAndFetchGeneratedValues(
461    ) throws OSSException
462    {
463       return "call UPDATE_BF_BLOGENTR (?, ?, ?, ?, ?, ?, ?, ?)";
464    }
465 }
466
Popular Tags