91嫩草国产线免费观看_欧美日韩中文字幕在线观看_精品精品国产高清a毛片_六月婷婷网 - 一级一级特黄女人精品毛片

如何將mysql longtext類型插入到 oracle varchar類型中

首頁 > 身份戶籍2021-02-03 18:13:16

如何替換MYSQL數據庫中longtext類型內容中的某個詞

有一個表:wp-posts ,此表里有一個字段:post_content(為longtext類型),其實就是網站的文章內容,我想在此字段里搜索:"a.com",并將其更新為"b.com”
update wp-posts set post_content=replace(post_content,'a.com','b.com')

如何在mysql中插入longtext類型文本

我這有一篇別人的, 你先用用吧(未經過測試,但應該沒問題)
// MySql2.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
//在DBMS中線要創建數據庫www,table www,file字段數據類型用LONGTEXT即可測試
//測試文件c:\test.iso,你可以找任何一個文件修改為即可,我找的是一個exe程序,修改為test.iso而已
//最大測試過加入文件大小為650M(一個正真的iso文件)
//注意:還要修改my.ini文件中的max_allowed_packet字段,我設置的是
//max_allowed_packet = 1024M
//#define host "localhost" //mysql server
//#define username "root"
//#define password "674800"
//#define database "test"
//int port = 3306;

#include <Winsock2.h>
#include <stdio.h>
#include <mysql.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#define host "localhost" //mysql server
#define username "root"
#define password "674800"
#define database "www"
int port = 3306;
#pragma comment(lib,"libmysql.lib")
//得到文件的大小(字節數)
int get_file_size(char *path, off_t *size)
{
struct stat file_stats;

if(stat(path, &file_stats))
return -1;

*size = file_stats.st_size;
return 0;
}
int main(int argc, char *argv[])
{
char *filename=NULL;
off_t size;

MYSQL *conn=NULL;
MYSQL_RES *res_set=NULL;
MYSQL_ROW row;
MYSQL_FIELD *field=NULL;
int i, flag;
char *sql; //sql語句
FILE *fp;
char *buf;
int n=256;
char *end;
unsigned long *length;

/* if (argc != 2)
{
printf("Usage: %s srcfilen", argv[0]);
exit(1);
}
*/
filename = "c:\test.iso";
if ((get_file_size(filename, &size)) == -1) //得到文件的大小
{
perror("get file size" );
exit(1);
}
if ((buf = (char *)malloc(sizeof(char)*(size+1))) == NULL)
{
perror("malloc buf" );
exit(1);
}
if ((fp = fopen(filename, "rb" )) == NULL) //讀文件
{
perror("fopen file" );
exit(1);
}

if ((n = fread(buf, 1, size, fp)) < 0) //讀文件失敗
{
perror("fread file" );
exit(1);
}
sql = (char *)malloc(sizeof(char)*n*2+256); //2n+1+strlen(other sql)
if (sql == NULL)
{
perror("malloc sql" );
exit(1);
}
conn = mysql_init(NULL);//生產一個mysql對象
if (conn == NULL)
{
printf("init mysql, %sn", mysql_error(conn));
exit(1);
}

if ((mysql_real_connect(conn, host, username, password, database, port, NULL, 0)) == NULL) //連接服務器
{
printf("connect mysql, %sn", mysql_error(conn));
exit(1);
}

strcpy(sql, "insert into www(id, name, file) values(NULL, 'peter', " );
end = sql;
end += strlen(sql); //point sql tail
//convert NUL(ASCII 0)、'n'、'r'、''’、'''、'"'和Control-Z and so on
*end++ = ''';
end += mysql_real_escape_string(conn, end, buf, n);
*end++ = ''';
*end++ = ')';

flag = mysql_real_query(conn, sql, (unsigned int)(end-sql));
if (flag != 0)
{
printf("insert failed, %sn", mysql_error(conn));
exit(1);
}

if ((mysql_real_query(conn, "SELECT file FROM www where id=1", 31)) != 0)
{
printf("insert failed, %sn", mysql_error(conn));
exit(1);
}
res_set = mysql_store_result(conn);

fclose(fp);
fp = NULL;

fp = fopen("c:\123.iso", "wb" );
while ((row = mysql_fetch_row(res_set)) != NULL)
{
length = mysql_fetch_lengths(res_set);
for (i=0; i<mysql_num_fields(res_set); i++)
{
fwrite(row[0], 1, length[0], fp);
//printf("%sn",row[0]);
}
}

fclose(fp);
mysql_close(conn);
free(sql);
free(buf);
sql = NULL;

return 0;
}

mysql庫數據導入到oracle庫中時遇到問題,mysql里面是VARCHAR(30)類型,oracle里面是VARCHAR2(40)類型

什么問題呢?是數據類型還是長度?

如果是數據類型的話
mysql、sqlserver是用varchar來存儲變回長字符數答據的
而oracle是使用varchar2來存儲變長字符數據的
這個你要習慣。

至于長度,主要看字符集吧。
一般情況下,如果你mysql和oracle都使用的是同一字符集,那么oracle的40長度肯定能存儲mysql的30的數據
但是如果你在mysql用的是gbk,但是在oracle中使用utf8,那么可能就悲劇了(一般也不會出現這種情況吧),可能需要重新安裝oracle,更改字符集。
而如果mysql用的是utf8,但是在oracle中使用gbk,那么沒有問題(可能性比較大的情況)

MySQL中的LONGTEXT類型怎么使用

問題很簡單,就是rncreate tables table_1(rnid int primary key auto_incrment,rncontent LONGTEXT(1000000)rn);rn和rnalter table table_1 modify content LONGTEXT(100000)這兩個語句會出錯。rn這個LONGTEXT到底怎么用啊,不是說有4GB的空間嗎,但是我不加括號直接用LONGTEXT類型,卻被截斷了數據。搞得數據不完整了。rnrn到底怎么樣可以完全使用這4GB的空間啊。
不加括號就可以,下面的內容復制自MYSQL手冊,多看手冊有好處:

一個專BLOB或TEXT對象的最大尺寸由其類型屬決定,但是你能在客戶與服務器之間是實際傳輸的最大值由可用的內存數量和通訊緩沖區的大小來決定。你能改變消息緩沖區大小,但是你必須在服務器和客戶兩端做。見10.2.3 調節服務器參數。

例如許多文件系統不支持大于2G的文件,如何能存儲4G的字段呢,這個是操作系統的限制。
LONGTEXT不用加括號指定長度,如果被截斷可能是其它問題,LONGTEXT肯定夠長了

相關推薦:

電子合同糾紛解決(簽電子合同糾紛怎么解決)

現戶籍所在地怎么填寫(戶籍所在地怎么填寫)

超生新生兒如何上戶(超生如何給孩子上戶口)

行政處罰會留案底嗎(行政處罰決定書會留案底嗎)

公民如何保護生命健康權(法律如何保護我們的健康)