ORACLE里头动态的添加字段,如果存在就不添加,如果不存在就添加。sql语句怎么写?

已举报 回答
ORACLE里头动态的添加字段,如果存在就不添加,如果不存在就添加。sql语句怎么写?
问在线客服
扫码问在线客服
  • 回答数

    3

  • 浏览数

    4,610

3个回答 默认排序
  • 默认排序
  • 按时间排序

已采纳
declare p_table_name varchar2(30);p_column_name varchar2(30);p_data_type varchar2(30);p_cnt number;p_sql varchar2(4000);begin p_table_name:=''; p_column_name:=''; select count(1) into p_cnt from user_tab_cols where a.table_name=p_table_name and a.column_name=p_column_name; if p_cnt=0 then p_sql:='alter table '||p_table_name||' add '||p_column_name||' '||p_data_type; execute immediate p_sql; end if;end;没测试,不过基本应该可以
取消 评论
这里我们要用Cursor中的getCount()方法去获得表中数据的行数(即,是否有数据)
注意!此方法返回值是int型,为数据行数,有数据则大于等于1无数据则为0,
拿到查询回来的行数后在java代码中判断是否为0,即是否有数据!看下面代码:
//创建或者打开数据库

SQLiteDatabase db = openOrCreateDatabase(test.db, Context.MODE_PRIVATE, null);
//实例化一个Cursor 为c做查询

Cursor c=db.rawQuery(select * from person where id=1,null);
int re = c.getCount();//定义一个int型变量re接收查询行数的返回值
//对re(数据行数)进行判断,为0执行下面insert,非0执行update if(re==0){
db.execSQL(insert into person(id,name,password) values(1,2,3));
}else{
db.execSQL(update person set name=? ,password=? where id=1,new Object[]{name,password});
}
基本每一行都有注释,纯手打。SQL语句改一下即可套用
取消 评论
///sqlite数据表建立唯一限制就行了么///sql代码如下:CREATE TABLE main.film (filmno INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,filmname TEXT(100),language TEXT(10),type TEXT(10),CONSTRAINT 不重复规则 UNIQUE (filmnam...
取消 评论
ZOL问答 > 相机 > 其他分类 > ORACLE里头动态的添加字段,如果存在就不添加,如果不存在就添加。sql语句怎么写?

举报

感谢您为社区的和谐贡献力量请选择举报类型

举报成功

经过核实后将会做出处理
感谢您为社区和谐做出贡献

扫码参与新品0元试用
晒单、顶楼豪礼等你拿

扫一扫,关注我们
提示

确定要取消此次报名,退出该活动?