我的代码如下.Echo工作得很好.但是,当我将echo的输出重定向到touch时,我得到一个错误"没有这样的文件或目录".为什么?我如何解决它 ?如果我复制只粘贴echo的输出,则创建文件,但不创建触摸.
while read line
do
#touch < echo -e "$correctFilePathAndName"
echo -e "$correctFilePathAndName"
done < $file.txt
Run Code Online (Sandbox Code Playgroud) 我有一个巨大的200MB .SQL文件.当我尝试在SQL Server Management Studio 2008中打开它时,我收到错误-Error HRESULT E_FAIL已从调用COM组件返回.
原因是什么以及如何解决?这是由于大文件引起的吗?当我打开2-3 KB文件时不会发生这种情况.
列ID(varchar)具有重复的值。其中一些值具有尾部空格,当我执行选择时我不想看到它们。
我想做一个“删除尾随空格后选择不同”。
我尝试了下面的代码,但没有帮助。我仍然在输出中留下尾随空格。
CREATE FUNCTION dbo.TRIM(@string VARCHAR(MAX))
RETURNS VARCHAR(MAX)
BEGIN
RETURN LTRIM(RTRIM(@string))
END
GO
SELECT dbo.TRIM(' String ')
GO
Run Code Online (Sandbox Code Playgroud)
然后,
select distinct dbo.trim(MyID) as Trimmed
from dbo.SourceTbl
Run Code Online (Sandbox Code Playgroud)
给出一张表:
ColumnPosition, ColumnName
Col 1, NULL
Col 2, NULL
Col 3, NULL
Run Code Online (Sandbox Code Playgroud)
我想ColumnName根据ColumnPosition的预定义值映射进行更新.
例如:
如果ColumnPosition ='Col 1',则将ColumnName更新为'Name'如果ColumnPosition ='Col 3',则将ColumnName更新为'Address'
如何使用CASE语句完成此操作?
我的脚本任务在每个循环的SSIS内部.我希望脚本任务只为所有迭代将一些动态字符串写入一个文件.每次迭代后,应该附加文件,而不是用动态字符串的当前值覆盖.它就像一个记录"工具".顺便说一句,SSIS是SQL服务器集成服务,一个ETL工具.
我该怎么做呢 ?
我尝试使用脚本,但它似乎用动态字符串覆盖文件.我不希望这样.我希望它被附加到文件中.
这是每个循环内部的脚本 -
String text = "My text here";
String path = @"C:\Data\TextFiles\logFile.txt";
StreamWriter file = new StreamWriter(path, true);
file.WriteLine(text);
file.Close();
Run Code Online (Sandbox Code Playgroud) 我有一个开始日期和结束日期(以sql server datetime格式).我想将它分成几个范围,即几对开始和结束日期值.注 - 我有.NET 3.5和Visual Studio 2008.
例如.S = 2005. E = 2010,块大小= 1年.巴黎产生= 2005-06,06-07,07-08,08-2010
块可以是任何天数/月.我把代码放在SO帖子中,在我的主要方法之后,我得到了一些错误.Post - 将日期范围分成日期范围块
代码 -
public static IEnumerable<Tuple<DateTime, DateTime>> SplitDateRange(DateTime start, DateTime end, int dayChunkSize)
{
DateTime chunkEnd;
while ((chunkEnd = start.AddDays(dayChunkSize)) < end)
{
yield return Tuple.Create(start, chunkEnd);
start = chunkEnd;
}
yield return Tuple.Create(start, end);
}
Run Code Online (Sandbox Code Playgroud)
我收到两个错误:
'CodeHere.csproj.ScriptMain.SplitDateRange(System.DateTime,System.DateTime,int)'的主体不能是迭代器块,因为'IEnumerable
和:
"元组"这个名称在当前上下文中不存在
我想一次向SQL Server插入大约5000个(通常可以是10K +次)行.我的insert语句由C#程序生成.
一种方法可能是简单地生成一个充满这些SQL语句的大字符串,然后实际使SQL Server使用它们执行它们SqlCommand.ExecuteNonQuery();但是存在SQL Server可能无法执行这样的大语句的风险.
有没有办法可以将SQL语句推送到某种"SQL Server缓冲区"(如果有的话)然后最终执行它们?
编辑 -我正在使用SQL Server 2005,2008.所以,我需要兼容两者的东西.
谢谢.
我尝试了这篇SO帖子中的代码 - 如何评估bash中if块中的布尔变量?它不起作用.看起来BASH中没有布尔值.有没有完美的解决方法让我在BASH中设置和检查布尔值?
我的代码 -
#!/bin/bash
flag=true
if [ $flag ]
echo 'True'
#flag=false
#echo 'Now changed to false'
fi
Run Code Online (Sandbox Code Playgroud)
即使第2行中的flag = false,输出仍为True.为什么?
我正在阅读教程的第2.3节 - http://www.vectorsite.net/tsawk_2.html#m2
Awk的字符串搜索功能还有很多.搜索可以约束到输入行中的单个字段.
例如:
$1 ~ /^France$/
Run Code Online (Sandbox Code Playgroud)
没有代码显示此模式的工作原理.有人可以告诉我如何使用这条线以及它是如何工作的?
我有一个字符串,其末尾有一个新行.我无法选择删除此换行符.它已经存在于字符串中.我想删除此字符串中的最后一个单引号.我尝试使用另一篇文章中给出的方法 - 修剪字符串中的最后一个字符
"Hello! world!".TrimEnd('!');
Run Code Online (Sandbox Code Playgroud)
我尝试做错了 "Hello! world!".TrimEnd(''');
我该如何解决 ?
我想创建一个脚本,该脚本应该接受一个参数并检查它是否等于给定的单词然后相应地显示一条消息.我使用ubuntu OS的bash shell.我根据教程尝试了一些东西 - http://www.tech-recipes.com/rx/209/bournebash-shell-scripts-string-comparison/但它失败了.
#!/bin/bash
if ["$1"=="password"]
then
echo correct password
else
echo wrong password
fi
Run Code Online (Sandbox Code Playgroud)
bash Script.sh密码.
错误消息是 - [密码=密码]:找不到命令.
怎么解决?
我有一个表"INSERTIF",看起来像这样 -
id value
S1 s1rocks
S2 s2rocks
S3 s3rocks
Run Code Online (Sandbox Code Playgroud)
在将一行插入此表之前,我想检查给定的ID是否存在.如果它不存在,则插入.否则,只需更新值即可.我想以线程安全的方式做到这一点.你能告诉我我的代码是否正确吗?我尝试了它,它的工作原理.但是,我想确保我没有遗漏任何性能问题.
编辑1-我想使用此代码一次插入数百万行.每个insert语句都包含在我显示的代码中.
编辑2 -我不想使用我的代码的UPDATE部分,只插入就足够了.
我不想使用MERGE,因为它只适用于SQL Server 2008及更高版本
谢谢.
代码 -
-- no check insert
INSERT INTO INSERTIF(ID,VALUE)
VALUES('S1', 's1doesNOTrock')
--insert with checking
begin tran /* default read committed isolation level is fine */
if not exists
(select * from INSERTIF with (updlock, rowlock, holdlock)
where ID = 'S1')
BEGIN
INSERT INTO INSERTIF(ID,VALUE)
VALUES('S1', 's1doesNOTrock')
END
else
/* update */
UPDATE INSERTIF
SET VALUE = 's1doesNOTrock'
WHERE ID = …Run Code Online (Sandbox Code Playgroud)