@@ -87,7 +87,7 @@ public String tableDDL(Connection connection, String databaseName, String schema
8787 SQLExecutor .getInstance ().execute (connection , sql , resultSet -> {
8888 try {
8989 if (resultSet .next ()) {
90- ddlBuilder .append (resultSet .getString ("sql" ));
90+ ddlBuilder .append (resultSet .getString ("sql" )). append ( ";" ) ;
9191 }
9292 } catch (SQLException e ) {
9393 throw new RuntimeException (e );
@@ -259,11 +259,15 @@ public Function function(Connection connection, @NotEmpty String databaseName, S
259259 function .setDatabaseName (databaseName );
260260 function .setSchemaName (schemaName );
261261 function .setFunctionName (functionName );
262- StringBuilder bodyBuilder = new StringBuilder ("CREATE " );
262+ StringBuilder bodyBuilder = new StringBuilder ("CREATE OR REPLACE " );
263263 while (resultSet .next ()) {
264264 bodyBuilder .append (resultSet .getString ("TEXT" )).append ("\n " );
265265 }
266- function .setFunctionBody (bodyBuilder .toString ());
266+ String functionBody = bodyBuilder .toString ().trim ();
267+ if (!functionBody .endsWith ("/" )) {
268+ functionBody += "\n /" ;
269+ }
270+ function .setFunctionBody (functionBody );
267271 return function ;
268272
269273 });
@@ -391,11 +395,15 @@ public Procedure procedure(Connection connection, @NotEmpty String databaseName,
391395 procedure .setDatabaseName (databaseName );
392396 procedure .setSchemaName (schemaName );
393397 procedure .setProcedureName (procedureName );
394- StringBuilder bodyBuilder = new StringBuilder ("CREATE " );
398+ StringBuilder bodyBuilder = new StringBuilder ("CREATE OR REPLACE " );
395399 while (resultSet .next ()) {
396400 bodyBuilder .append (resultSet .getString ("TEXT" )).append ("\n " );
397401 }
398- procedure .setProcedureBody (bodyBuilder .toString ());
402+ String procedureBody = bodyBuilder .toString ().trim (); // 去掉最后的空白字符
403+ if (!procedureBody .endsWith ("/" )) {
404+ procedureBody += "\n /" ;
405+ }
406+ procedure .setProcedureBody (procedureBody );
399407 return procedure ;
400408 });
401409 }
@@ -412,7 +420,7 @@ public Table view(Connection connection, String databaseName, String schemaName,
412420 table .setSchemaName (schemaName );
413421 table .setName (viewName );
414422 if (resultSet .next ()) {
415- table .setDdl ("CREATE VIEW " + viewName + " AS " + resultSet .getString ("TEXT" ));
423+ table .setDdl ("CREATE OR REPLACE VIEW " + viewName + " AS " + resultSet .getString ("TEXT" ));
416424 }
417425 return table ;
418426 });
0 commit comments