当我想轻松阅读我的 PostgreSQL 模式时,我将其转储到以下位置stderr并将其重定向到vim:
pg_dump -h localhost -U postgres dog_food --schema-only | vim -
Run Code Online (Sandbox Code Playgroud)
这给出:
vim 没有语法高亮模式,因为从 stdin 读取时它没有文件扩展名,所以我使用以下内容:
:set syntax=sql
Run Code Online (Sandbox Code Playgroud)
这使:
作为一个懒惰的开发人员,我想vim通过传递命令行参数来强制使用 SQL 语法,这样我set syntax=<whatever>每次打开stdin数据时都不必重新输入。
有没有办法vim通过传递命令行参数来设置语法?
我在 RosettaCode 页面中发现了以下类型的 shebang:
--() { :; }; exec db2 -txf "$0"
Run Code Online (Sandbox Code Playgroud)
它适用于 Db2,也适用于 Postgres。但是,我不明白整行。
我知道双破折号是 SQL 中的注释,之后它调用 Db2 可执行文件,并使用一些参数将文件本身作为文件传递。但是括号,卷曲的刹车,冒号和分号怎么样,以及如何替换真正的shebang #!?
我正在使用 Oracle Java 1.8.0_91-b14(不是openjdk)在 Ubuntu 16.04 上设置 Tomcat 8.0.35,以便在对我们的 Microsoft SQL 数据库进行身份验证时使用 Kerberos 身份验证。我遇到的问题是,在kinit使用适当的开关以适当的用户身份运行后:
sudo -u tomcat8 kinit -k -t /etc/tomcat8/tomcat8.keytab HTTP/linux-test2.our.domain.local@OUR.DOMAIN.LOCAL
Run Code Online (Sandbox Code Playgroud)
我在 Tomcat 的 localhost 日志中收到此错误:
Caused by: GSSException: No valid credentials provided (Mechanism level: Fail to create credential. (63) - No service creds)
Caused by: KrbException: Fail to create credential. (63) - No service creds
Run Code Online (Sandbox Code Playgroud)
当我跑
sudo -u tomcat8 klist
Run Code Online (Sandbox Code Playgroud)
我得到了预期的回应:
root@linux-test2:/home/tbourne# sudo -u tomcat8 klist
Ticket cache: FILE:/tmp/krb5cc_111
Default principal: HTTP/linux-test2.our.domain.local@OUR.DOMAIN.LOCAL
Valid starting …Run Code Online (Sandbox Code Playgroud) 我成功地使用 froxlor 等设置了我的服务器,但现在我的邮件传递代理出现错误,因为我在我的 mysql-pw 中使用了“#”。我试图用 '\' 转义它,但它似乎不起作用。:(
如何更改 /etc/dovecot/covecot-sql.conf.ext 以使其使用带有特殊字符的密码(让我们以密码“test#this”为例)?
我当前的配置:
driver = mysql
connect = host=127.0.0.1 dbname=froxlor user=froxlor password=test#test
default_pass_scheme = CRYPT
Run Code Online (Sandbox Code Playgroud)
这是错误消息:
dovecot: auth: Warning: Configuration file /etc/dovecot/dovecot-sql.conf.ext line 2: Ambiguous '#' character in line, treating it as comment. Add a space before it to remove this warning.
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种方法来遍历 CSV 文件作为关系数据库表。
我做了一些研究,因为我发现没有任何东西完全符合我的要求。我发现了几个部分不错的选择,即:
在单个csv/文本文件(列总和、平均值、最小值、最大值、子集等)上遍历和执行一些类似数据库的操作是可能的,而且非常简单,但不能在两个文件上执行,它们之间存在某种联系。也可以将文件导入临时数据库进行查询,我已经这样做了,尽管不如我希望的那么实用。
TL;DR - 我基本上想要一种方便的方法来对 csv 文件进行快速而肮脏的 sql 连接。不是在寻找一个完整的基于文本的 RDBMS,而是一个更好的方法来对 csv RDBMS 提取进行一些分析。
例子:
sqlthingy -i tbl1.csv tbl2.csv -o 'select 1,2,3 from tbl1, tbl2 where tbl1.1 = tbl2.1'
这似乎是一个足够有趣的问题,我可以花一些时间在上面,但我想知道它是否已经存在。
我正在编写的 Korn 脚本的一部分要求我'用两次出现 ( '')替换所有出现的字符。我试图将我在此脚本中生成的一些 SQL 记录到另一个表中的列中,但需要用单引号字符的 2 个实例替换单引号。我知道某处一定有此功能的示例,但我没有找到特定于任何地方的变量的字符串替换示例。
我只是想从 sql 语句中获取输出并存储在 bash 变量中。我在寻找匹配的‘)’时遇到“意外的 EOF”错误。我不明白我做错了什么。为什么我收到这个错误?
var=$($ORACLE_HOME/bin/sqlplus / as sysdba <<EOF
select status from v\$instance;
exit;
EOF
)
Run Code Online (Sandbox Code Playgroud) 我有一个具有以下格式的文件
INSERT INTO table1(field1,field2,field3) VALUES('values1','value2','value3');
INSERT INTO table1(field1,field2,field3) VALUES('other_values1','other_value2','other_value3');
INSERT INTO table1(field1,field2,field3) VALUES('another_values1','another_value2','another_value3');
INSERT INTO table2(table2_field1,table2_field2,table2_field3,field4) VALUES('table2_values1','table2_value2','table2_value3');
INSERT INTO table2(table2_field1,table2_field2,table2_field3,table2_field4) VALUES('other_table2_values1','other_table2_value2','other_table2_value3');
INSERT INTO table2(table2_field1,table2_field2,table2_field3,table2_field4) VALUES('another_table2_values1','another_table2_value2','another_table2_value3','another_table2_value4');
Run Code Online (Sandbox Code Playgroud)
我想要这个输出
SELECT * FROM table1 WHERE field1='values1' AND field2='values2' AND field3=='values3';
SELECT * FROM table1 WHERE field1='other_values1' AND field2='other_values2' AND field3=='other_values3';
SELECT * FROM table1 WHERE field1='another_values1' AND field2='another_values2' AND field3=='another_values3';
SELECT * FROM table2 WHERE table2_field1='table2_values1' AND table2_field2='table2_values2' AND table2_field3=='table2_values3' AND table2_field4=='table2_values4';
SELECT * FROM table2 WHERE table2_field1='table2_values1' AND table2_field2='table2_values2' AND table2_field3=='table2_values3' AND table2_field4=='table2_values4'; …Run Code Online (Sandbox Code Playgroud) 我可以做些什么来重定向文本文件中的查询结果 sqlplus
我试过: start requete.sql > resultat.txt但它不起作用。
这是我的输入文件
0164318,001449,001452,001922
0164318,001456,001457,001922
0842179,002115,002118,001485
0846354,001512,001513,001590
0841422,001221,001224,001860
0841422,001227,001228,001860
Run Code Online (Sandbox Code Playgroud)
我想要我的结果
0164318,001449,001457,001922
0842179,002115,002118,001485
0846354,001512,001513,001590
0841422,001221,001228,001860
Run Code Online (Sandbox Code Playgroud)
使用 col1 分组并
通过 shell 脚本查找 min(col2) 和 max(col3) 。