大家好,
我想使用jsp,servlet和jdbc等创建一个Web应用程序。
它只是创建一个名为student的表,包含各种字段作为数据库中学生的信息,不同的页面执行不同的查询任务。
问题是我想创建一个war文件来将这个应用程序分发给我的客户端。
当我编写一个sql查询来在我的jsp页面中创建一个表时,每当我运行这个项目时,它都会尝试创建一个新表。
这里我希望它只在用户第一次运行时创建一个表。所以当我将war文件分发给我的客户端时,在第一次运行时它会创建一个学生名表并执行所需的查询。将来运行它只执行其他查询但不再创建表。
我需要您的宝贵指导和概述来解决这个问题。任何类型的帮助将不胜感激。 "感谢"
答案 0 :(得分:1)
在Oracle
中,解决方法是将其包装在匿名BEGIN-END
块中。 EXCEPTION
块只允许table already exists error
。
BEGIN
EXECUTE IMMEDIATE 'CREATE TABLE...
EXCEPTION
WHEN OTHERS THEN
IF SQLCODE = -955 THEN
NULL; -- ignore the ORA-00955 error
ELSE
RAISE;
END IF;
END;
/
这是一种优选方式。另一种方法是在data dictionary
视图dba_tables
中手动检查表格是否存在。
SELECT count(*)
INTO variable_count
FROM dba_tables
WHERE table_name = 'table_name';
所以,
IF variable_count = 0 THEN EXECUTE IMMEDIATE CREATE TABLE ...