我正在尝试在 Windows 上的 docker 容器中运行 postgres。我还想将数据保存在 windows 文件夹中,所以我尝试了这个:
mkdir c:\pgdata
PS > docker run --name postgres -v c:\pgdata:/var/lib/postgresql/data -d postgres
d12af76bed7f8078babc0b6d35710dfc02b12d650904ed53ca95bb99984e9b36
Run Code Online (Sandbox Code Playgroud)
这似乎有效,但容器没有运行,日志讲述了一个不同的故事:
2019-07-24 23:19:20.861 UTC [77] FATAL: data directory "/var/lib/postgresql/data" has wrong ownership
2019-07-24 23:19:20.861 UTC [77] HINT: The server must be started by the user that owns the data directory.
child process exited with exit code 1
Run Code Online (Sandbox Code Playgroud)
如果我删除了 volume 选项,它会正常启动,但是我不会将我的数据库文件保存在我想要的位置。我在这里做错了什么?
什么是补充方法 Encoding.UTF8.GetString
即,如果Encoding.UTF8.GetString将字节数组中的字节解码为字符串,那么用什么方法将字符串编码为字节数组中的字节,使得
var somestring == Encoding.UTF8.GetString(method(someString));
Run Code Online (Sandbox Code Playgroud)
是真的?
我不小心调用了一个带有不带引号的字符串参数的存储过程。我预计会出现语法错误:
如果参数的值为对象名、字符串或由数据库名或模式名限定,则整个名称必须用单引号括起来。
但这有效:
CREATE PROC foobar @a VARCHAR(40) AS BEGIN SELECT @a END
go
EXEC foobar @a = abc
Run Code Online (Sandbox Code Playgroud)
这让我很惊讶!我尝试了 SQL Server 2008、2012 和 2016 版。我是否遗漏了什么,或者这只是一个未记录的“功能”?
跑步
x86_64-pc-linux-gnu 上的 PostgreSQL 11.4 (Debian 11.4-1.pgdg90+1),由 gcc 编译 (Debian 6.3.0-18+deb9u1) 6.3.0 20170516,64 位
我尝试过这个声明:
SELECT CAST (2^63-1 as bigint);
Run Code Online (Sandbox Code Playgroud)
但收到意外的错误消息:
bigint 超出范围
奇怪的是,如果我只是用其等效的整数替换指数形式:
SELECT CAST (9223372036854775807 as bigint)
Run Code Online (Sandbox Code Playgroud)
它按预期工作。我想这只是我没有正确理解事情。FWIW我可以使用的指数表示法中的最大数字是这样的:
SELECT CAST (2^63-513 as bigint);
Run Code Online (Sandbox Code Playgroud)
任何更大的东西都会以同样的方式出错。
关于 PostgreSQL 如何求幂,我缺少什么?或者,它是否被转换为浮点数并返回,并且我看到舍入/截断错误?
我正在学习F#.我想知道验证输入参数的最佳实践.在我的天真中,我以为我可以这样做:
let foo = match bar with
| <test for valid> -> bar
| _ -> "invalid"
Run Code Online (Sandbox Code Playgroud)
当然,由于不匹配的类型,这不起作用.所以我希望看到F#程序员用于此类事情的模式.比赛?如果/然后/别的吗?
别的什么?
给出键/值对的列表:
do
[("A", 1);("B",2)]
|> (fun list ->
for item in list do
match item with
| ("A", x) -> //expression assigning x to variable "A"
| ("B", x) -> //expression assigning x to variable "B"
| _ -> //default expression
)
Run Code Online (Sandbox Code Playgroud)
是否有一些我能写的表达式可以完成同样的事情
let A = 1
let B = 2
Run Code Online (Sandbox Code Playgroud)
我事先知道列表中的项目不超过10项,并且项目是<string,int>的元组,但事先并不知道"A"或"B"或其他键是否存在或者是否存在列表是空的.
基本上,将列表分解为一组类型变量.
更新:关于上下文的注释
在我的应用程序中,我从一个不同团队维护的上游程序中收到一个键/值对列表.我希望某些键位于列表中,我想将其分配给类型变量以供以后处理.如果我需要的东西丢失,我会抛出异常.但是我不希望被锁定到任何给定的变量名称集,除了预期的变量名称.对于所有这些,我希望能够在运行时分配它们.
在 Windows 上使用 VS Code 打开 SQL 脚本时,我收到以下消息:
正在初始化 mssql 扩展的 SQL 工具服务。注意:安装服务后,mssql 命令将可用。
平台:win32、x86_64 (Windows)
将 SQL 工具服务安装到 c:\Users\BRITTG2.vscode\extensions\ms-mssql.mssql-1.8.0\sqltoolsservice\1.8.0\Windows。下载 https://download.microsoft.com/download/e/7/8/e781cf8f-9c3f-4ad5-bd0c-f3c62b8bc6bd/microsoft.sqltools.servicelayer-win-x64-netcoreapp2.2.zip [错误] 错误:请求错误:UNABLE_TO_GET_ISSUER_CERT_LOCALLY
我该如何解决这个错误?请注意,我是一家公司的幕后黑手。固件
我安装了 SQL Server 2012 本地数据库 从此下载
选择 ENU\x64\SqlLocalDB.MSI
我运行正常,然后尝试使用该sqllocaldb命令,出现此错误:
PS C:\WINDOWS\system32> sqllocaldb start mssqllocaldb
Run Code Online (Sandbox Code Playgroud)
由于以下错误,LocalDB 实例“mssqllocaldb”的启动失败:
LocalDB 实例 API 方法调用内发生意外错误。
有关错误详细信息,请参阅 Windows 应用程序事件日志。
日志是这样说的:
Windows API 调用 RegOpenKeyExW 返回错误代码: 2. Windows 系统错误信息是:系统找不到指定的文件。在第 967 行报告。
和
LocalDB 父实例版本无效:MSSQL12E.LOCALDB
和
Windows API 调用 GetSvcBinPathByInstName 返回错误代码: 2. Windows 系统错误信息是:系统找不到指定的文件。在第 3546 行报告。
试图理解这一点:
PS C:\Users\BRITTG2\source\repos\tbsm.canoe.core (feature/bau-1057)
> git ls-files | sls Filtered
Projects/TBSM.Canoe.Core/TBSM.Canoe.Core.Common/TBSM.Canoe.Core.Common.Domain/Certificates/FilteredCertificates.cs
Run Code Online (Sandbox Code Playgroud)
为什么git show不显示blob并且也不给出错误?
PS C:\Users\BRITTG2\source\repos\tbsm.canoe.core (feature/bau-1057)
> git show Projects/TBSM.Canoe.Core/TBSM.Canoe.Core.Common/TBSM.Canoe.Core.Common.Domain/Certificates/FilteredCertificates.cs
PS C:\Users\BRITTG2\source\repos\tbsm.canoe.core (feature/bau-1057)
>
Run Code Online (Sandbox Code Playgroud)
为了比较
> cat Projects/TBSM.Canoe.Core/TBSM.Canoe.Core.Common/TBSM.Canoe.Core.Common.Domain/Certificates/FilteredCertificates.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
etc.
Run Code Online (Sandbox Code Playgroud)
更新:
以下第一个答案有效:
git show HEAD:yourfile
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以在show命令中指定通配符,以便我可以在没有完整(可能很长)路径的情况下显示文件?
在列表comp.例如,变量是否使用了与let stmt中状态相同的实变量?如果是这样,它实际上是可变的,对吗?它每次都围绕循环被绑定到一个新的东西吧?
f# ×3
postgresql ×2
sql-server ×2
variables ×2
c# ×1
certificate ×1
docker ×1
encoding ×1
exponential ×1
git ×1
list ×1
localdb ×1
match ×1
mutable ×1
parameters ×1
show ×1
sql ×1
validation ×1
windows-10 ×1