小编P_A*_*_Ar的帖子

从 csv 文件批量插入 - 忽略有错误的行 - SQL Server

我正在尝试将数据从 csv 文件导入到 SQL Server。csv 文件中有数千个条目,并且许多行中的数据不正确。

CSV 文件中的一些行是:

`"ID"|"EmpID"|"FName"|"LName"|"Gender"|"DateOfBirth"
"1"|"90043041961"|"ABCD"|"TEST"|"F"|"1848-05-05 00:00:00.000"
"1"|"10010161961"|"XYZ"|"TEST"|"F"|"1888-12-12 00:00:00.000"
.
.
..
..
....
"4"|"75101141821PPKKLL"|"LLKK"|"F"|"1925-09-09 00:00:00.000"|""
"4"|"32041401961UUYYTT"|"PPLL"|"M"|"1920-01-01 00:00:00.000"|""
.
.....
"25"|"00468132034"|"FGTT"|"OOOO"|"F"|"1922-11-11 00:00:00.000"
"25"|"00468132034"|"KKKK"|"PPPP"|"F"|"1922-11-11 00:00:00.000"
Run Code Online (Sandbox Code Playgroud)

创建 TestTable 并尝试将数据(来自 csv 文件)插入其中:

create table TestTable
(
     ID varchar(5),
     EmpID varchar(25),
     FName varchar(25),
     LName varchar(25),
     Gender varchar(5),
     DateOfirthB varchar(30)
);
Run Code Online (Sandbox Code Playgroud)

我使用以下脚本将数据从 csv 文件导入到TestTableSQL Server 中:

bulk insert TestTable
from 'C:\TestData.csv'
with 
   (firstrow = 2,
    DATAFILETYPE='char',
    FIELDTERMINATOR= '"|"',
    ROWTERMINATOR = '\n',
    ERRORFILE ='C:\ImportErrors.csv',
    MAXERRORS = 0,
    TABLOCK
   );
Run Code Online (Sandbox Code Playgroud)

错误: …

sql sql-server bulkinsert csv-import

7
推荐指数
1
解决办法
1万
查看次数

使用 OR 子句的 SQL 连接查询

在创建 SQL 查询时需要帮助。有点困惑所以问问题。情况如下:

我有一张表 EmpInfo: EmpFirstName, EmpLastName, EmpID, EmpGender, EmpDOB, EmpAddress Table2 EmpMasterID: EmpID1, EmpId2, AbsoluteEmpID

EmpInfo 包含示例数据:

EmpFirstName | EmpLastName | EmpID | EmpGender | EmpDOB  | EmpAddress
First1       | Last1       | 10    |  M        | 1/1/92  | Addr1
First2       | Last2       | 20    |  F        | 1/12/92 | Addr2
First3       | Last3       | 30    |  F        | 1/12/94 | Addr3
First4       | Last4       | 40    |  M        | 1/2/94  | Addr4
First5       | Last5       | 60    |  M …
Run Code Online (Sandbox Code Playgroud)

sql sql-server join

4
推荐指数
1
解决办法
1万
查看次数

在PostgreSQL中找不到函数

我在PostgreSQL 11.2中创建了一个用户定义的函数,如下所示。它基本上将值插入到两个不同的表中:

CREATE OR REPLACE FUNCTION public.insertTest(
IN ID1 integer, 
IN Value1 character varying,
IN Value2 character varying,
IN Value3 character varying,
IN Status character varying,
IN Active_Flag integer, 
IN Stuff1 smallint,
IN stuff2 smallint)
RETURNS void
LANGUAGE 'plpgsql'

AS $BODY$
BEGIN

Insert into TableA 
(TA_ID,
 TA_Value1, 
 TA_Value2,
 TA_Value3, 
 TA_Value4,
 TA_Time, 
 TA_Flag)
values 
(ID1,
 Value1, 
 Value2,
 Value3, 
 Status,
 now(), 
 1);

Insert into TableB
(TA_ID,
 TB_ID,      Confidence,     Sev_Rate, 
 Last_Update_Time,   TB_Flag)
values
(currval('tablea_t_id_seq'), --TableA has an auto-increment field
 Active_Flag,    Stuff1,     Stuff2,
 now(), …
Run Code Online (Sandbox Code Playgroud)

postgresql types casting user-defined-functions postgresql-11

4
推荐指数
1
解决办法
217
查看次数

默认 PostgreSQL 密码加密方法

我想知道如果在创建用户或更改角色时未指定ENCRYPTED ,PostgreSQL 使用的默认加密方法(如果有)是什么。

我在 PostgreSQL 网站上阅读了以下内容:

密码存储加密 默认情况下,数据库用户密码存储为 MD5 哈希值,因此管理员无法确定分配给用户的实际密码。如果 MD5 加密用于客户端身份验证,则未加密的密码甚至不会暂时出现在服务器上,因为客户端在通过网络发送之前对其进行了 MD5 加密。

但我不确定是否仅在创建/更改角色/用户时使用ENCRYPTED时才使用 MD5 加密方法。

我使用的是 PostgreSQL 9.5

谢谢

postgresql postgresql-9.5

3
推荐指数
1
解决办法
9085
查看次数