在django模型中使用mssql工具bcp命令的实用程序

django-sql-server-bcp的Python项目详细描述


#django sql server bcp
一个用于在django型号中使用mssql tools bcp命令的实用程序。

\OLS for Mac预览版现已提供/
-Linux版:https://docs.microsoft.com/en-us/sql/linux/sql-server-linux安装工具



1。在Linux上,必须在odbc.ini中使用Microsoft的驱动程序。否则,dsn指定的驱动程序不受支持的情况会出现错误。`。
如果使用pyodbc,则驱动程序可能如下:

`` `
` ` `
[我的dsn地址]
driver=/usr/local/lib/libtdsodbc.so

` ` ` ` `


` ` ` ` ` ` ` ` ` ` ` ` ` `


将其更改为(例如在ubunubunubuntu上):

` ` ` ` ` ` ` ` ` ` ` ` SQL/lib64/lib msodbcsql-13.1.sO.6.0
```

>2.确保"bcp"可以执行

`sudo ln-s/opt/mssql tools/bin/bcp/usr/local/bin/bcp`

>3。在windows上,通过odbc dns名称使用bcp被证明是痛苦的,或者是直接中断的。*如果可用,Django SQL Server BCP*将首选通过服务器主机连接。因此,如果在让bcp在windows上工作时遇到问题,请在django databases设置中设置"host"。在django设置中可以保留"dsn"名称。django.db导入模型中的django.db导入模型中的django.db导入模型中的django.db导入模型中的django示例模型:




U位数s=15,小数位数=4)
timestamp=models.datetimefield()


`````

**示例bcp与"stockprice"模型一起使用。**

然后通过bcp保存:

``python
from random import random
from models import stockprice


rows=[]
for i in range(1,row\u count):
rows.append(dict(
symbol='goog',
price='%.2f'%(100*random()),
timestamp=str(datetime.datetime.now())
))
bcp.save(rows)
>princp.save(rows)




````



>您应该会看到类似以下输出的输出:


`````
``````开始拷贝……


>网络数据包大小(字节):4096
>时钟时间(ms)总计:10平均值:(49900.0行/秒。)
```










`````````````````````````
-字符串数据不能包含逗号或换行符,因为大容量数据文件格式是脆弱的csv格式。
-未经测试的长字符串、日期、二进制数据。
-不能在涉及bcp正在访问的同一表的django事务中使用-最终将锁定该表,bcp将无法对其获取锁定,bcp将无限期等待。

troublehoot在Linux上,DSN指定了一个不受支持的驱动程序,请参阅上面的要求,在Windows上,在Windows中设置ODBC数据源时,请选择"SQL Server Native Client XX"。不是"SQL Server"或"SQL Server的ODBC驱动程序xx"。有关详细信息,请访问https://docs.microsoft.com/en-us/sql/relational databases/native client odbc bulk copy operations/performing bulk copy operations odbc

\tion. 在32位和64位ODBC管理器下添加您的ODBC连接。

您正在使用的ODBC驱动程序的版本:版本13。你可以解决这个问题从"程序和功能"中查找版本,然后安装13.1版,您可以找到:https://www.microsoft.com/en-us/download/details.aspx?id=53339

` bcp `想秘密地访问一些文件,但在不告诉您原因的情况下失败。
-要打开文件访问审核,您可能会发现'bcp'正在尝试创建`/var/www/.odbc.ini`或access`/etc/localtime`

``bash
install auditd
sudo apt install auditd
#对success=0的所有文件打开文件访问审核
sudo auditctl-w/-k bcp_debug
文件bcp被拒绝访问

-由于某种原因,bcp试图在www data的主文件夹(例如/var/www/.odbc.ini)中创建".odbc.ini"。请确保www data的主文件夹可由www data写入
-另一个问题是,microsoft docs说要将"nul"传递到format命令,在windows上是nul文件,但在linux上,bcp将尝试打开名为"nul"的文件,但由于权限错误而失败。在Linux上,传递"/dev/null"而不是"nul"。

锁定表的事务

检查事务:

``sql
从sys.dm_exec请求中选择s.*
r
s.session上的内部连接sys.dm_exec会话s
```

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在表被注释到配置之前获取表的元数据?   java滚动条不会出现在JList上   java JOGL监视器GPU内存   java为什么要使用RecyclerView onDraw延迟   java定制Oppo Reno 2 Z CPH1951(手机型号)的固件(闪存文件)   java自定义线程池执行器   java如何解决发布版本中重复的jar条目[com/安卓/volley/R.class]?   java如何使用Bukkit API触发事件?   java在blazemeter jmeter RTE插件中使用ctrl+w输入   C#/Visual Studio的java JDT等价物   java为什么当maxread值很大而收到的消息数量很小时,卡夫卡消费者会无限期消费?   java游戏2。x:包含模板列表的绑定模型   带压缩的java日志旋转   运行时。exec用java运行程序读取它正在做什么