如何用SQL语句批量替换数据库字符串

如何用SQL语句批量替换数据库字符串,第1张

方法一:varchar和nvarchar类型是支持replace,所以如果你的text不超过8000可以先转换成前面两种类型再使用replace 替换 text ntext 数据类型字段的语句 。

1

update 表名 set 字段名=replace(cast(与前面一样的字段名 as varchar(8000)) ,'原本内容','想要替换成什么')

方法二:

1

update [表名] set 字段名 = replace(与前面一样的字段名,'原本内容','想要替换成什么')

select id+3,time,a,b,c,d into 临时表 from 业务表 where ID=1

(id+3)根据具体情况进行转换

然后将 临时表 数据导入 业务表

1 把原数据库包括在项目源码的 res/raw 目录下,然后建立一个DBManager类,代码如下:

package comandroidImportDatabase;

import javaioFile;

import javaioFileNotFoundException;

import javaioFileOutputStream;

import javaioIOException;

import javaioInputStream;

import androidcontentContext;

import androiddatabasesqliteSQLiteDatabase;

import androidosEnvironment;

import androidutilLog;

public class DBManager {

 private final int BUFFER_SIZE = 400000;

 public static final String DB_NAME = "countriesdb"; //保存的数据库文件名

 public static final String PACKAGE_NAME = "comandroidImportDatabase";

 public static final String DB_PATH = "/data"

         + EnvironmentgetDataDirectory()getAbsolutePath() + "/"

         + PACKAGE_NAME;  //在手机里存放数据库的位置

 private SQLiteDatabase database;

 private Context context;

 DBManager(Context context) {

     thiscontext = context;

 }

 public void openDatabase() {

     thisdatabase = thisopenDatabase(DB_PATH + "/" + DB_NAME);

 }

 private SQLiteDatabase openDatabase(String dbfile) {

     try {

         if (!(new File(dbfile)exists())) {//判断数据库文件是否存在,若不存在则执行导入,否则直接打开数据库

             InputStream is = thiscontextgetResources()openRawResource(

                     Rrawcountries); //欲导入的数据库

             FileOutputStream fos = new FileOutputStream(dbfile);

             byte[] buffer = new byte[BUFFER_SIZE];

             int count = 0;

             while ((count = isread(buffer)) > 0) {

                 foswrite(buffer, 0, count);

             }

             fosclose();

             isclose();

         }

         SQLiteDatabase db = SQLiteDatabaseopenOrCreateDatabase(dbfile,

                 null);

         return db;

     } catch (FileNotFoundException e) {

         Loge("Database", "File not found");

         eprintStackTrace();

     } catch (IOException e) {

         Loge("Database", "IO exception");

         eprintStackTrace();

     }

     return null;

 }

//do something else here<br>

 public void closeDatabase() {

     thisdatabaseclose();

 }

}

然后在程序的首个Activity中示例化一个DBManager对象,然后对其执行openDatabase方法就可以完成导入了,可以把一些要对数据库进行的 *** 作写在DBManager类里,然后通过DBManager类的对象调用;也可以在完成导入之后通过一个SQliteDatabase类的对象打开数据库,并执行 *** 作。

我的做法是 在程序的首个Activity中导入数据库:

package comandroidImportDatabase;

import androidappActivity;

import androidcontentIntent;

import androidosBundle;

public class RootView extends Activity {

 public DBManager dbHelper;

 @Override

 public void onCreate(Bundle savedInstanceState) {

     superonCreate(savedInstanceState);

     setContentView(Rlayoutmain);

     dbHelper = new DBManager(this);

     dbHelperopenDatabase();

     dbHelpercloseDatabase();

 }

}

此时在DDMS中可以查看到,外部数据库已经成功导入

楼上正解

不过,这些在dede后台的sql命令行工具中 *** 作即可实现。

UPDATE dede_addonarticle SET body = REPLACE (body, '>

oracle:

假如从A库中导入B库中:

1、从A库中倒出

exp system/bitservice owner=(user_nameA) table=(table_name) file=backupdata1dmp log=backupdata1log buffer=655000 compress=y

2、导入B库中

imp system/bitservice fromuser=(user_nameA) touser=(user_nameB) file=backupdata1dmp log=backupdata1_implog ignore=y

update dboB set 树种组成 = substring(树种组成,1,1) +

(select 名称 from dboA where 代码=203)+

(substring(树种组成,5,1))+

(select 名称 from dboA where 代码=108)

where ID = 1

以上就是关于如何用SQL语句批量替换数据库字符串全部的内容,包括:如何用SQL语句批量替换数据库字符串、SQL 数据库表内容如何复制替换、android 怎么替换外部数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9434794.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存