怎么没有create or replace table

overmind 2005-03-17 03:20:47
在pl/sql里面,如果想要先drop table 再create table这样的sql语句怎么写?
...全文
2271 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
overmind 2005-03-17
  • 打赏
  • 举报
回复
怎么判断一个表是否存在??
bzszp 2005-03-17
  • 打赏
  • 举报
回复
没有什么更好的方式了。
lcg412 2005-03-17
  • 打赏
  • 举报
回复
如果已知有此表
drop table tb1
create table tb1 ( a varchar2(2));
如果不確定有此表
DECLARE INTA NUMBER;
BEGIN
SELECT COUNT(1) INTO INTA FROM TAB WHERE TNAME='TB1';
IF INTA=0
BEGIN
EXECUTE IMMEDIATE 'CREATE TABLE TB1 ( A VARCHAR2(2))';
END;
END IF;
END
yxxx 2005-03-17
  • 打赏
  • 举报
回复
什么才算“更好的方法”?
bzszp 2005-03-17
  • 打赏
  • 举报
回复
SQL> begin
2 execute immediate 'drop table tb1';
3 execute immediate 'create table tb1(
4 aa number,
5 bb number)';
6 end;
7 /

PL/SQL 过程已成功完成。

SQL> desc tb1;
名称 是否为空? 类型
----------------------------------------- -------- ------
AA NUMBER
BB NUMBER

SQL>

有什么错误提示?
overmind 2005-03-17
  • 打赏
  • 举报
回复
declare
begin
execute immediate 'drop table students';
execute immediate 'create table students(
id number(5) primary key,
first_name varchar2(20),
last_name varchar2(20),
major varchar2(30),
current_credits number(3)
)';
end;

确实可以了,各位达人有没有什么更好的办法。
yxxx 2005-03-17
  • 打赏
  • 举报
回复
declare去掉
end后面加分号
overmind 2005-03-17
  • 打赏
  • 举报
回复
我不知道问什么oracle这么费劲,在sql server里,drop create就搞定了。

痛苦啊~~
overmind 2005-03-17
  • 打赏
  • 举报
回复
declare
begin
execute immediate 'drop table students';
execute immediate 'create table students(
id number(5) primary key,
first_name varchar2(20),
last_name varchar2(20),
major varchar2(30),
current_credits number(3)
)';
end

怎么还是不行啊
baojianjun 2005-03-17
  • 打赏
  • 举报
回复
SQL_TEXT:='drop table tbname'
CUR_ID:=DBMS_SQL.OPEN_CURSOR;
DBMS_SQL.PARSE(CUR_ID,SQL_TEXT,DBMS_SQL.NATIVE);
STAT:=DBMS_SQL.EXECUTE(CUR_ID);
DBMS_SQL.CLOSE_CURSOR(CUR_ID);
overmind 2005-03-17
  • 打赏
  • 举报
回复
如果不用excute immediate呢?
baojianjun 2005-03-17
  • 打赏
  • 举报
回复
呵呵,如上
bzszp 2005-03-17
  • 打赏
  • 举报
回复
begin
execute immediate 'drop table tbname';
execute immeidate 'create table tbname ...';
end;
/

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧