我有一個刪除語句delete * from table_name;
。目前shell將其展開以列出當前目錄中的所有現有文件。我該如何轉義它,以便傳遞給sqlplus的字符串確實是「從表名刪除*」。我試過\*
'*'
和\\*
,並且都沒有工作。在sql語句中停止擴展* *
確切的腳本是
#!/bin/bash
table_name = $1
delete_sql= "delete * from $table_name;"
echo $delete_sql > abc.sql
我有一個刪除語句delete * from table_name;
。目前shell將其展開以列出當前目錄中的所有現有文件。我該如何轉義它,以便傳遞給sqlplus的字符串確實是「從表名刪除*」。我試過\*
'*'
和\\*
,並且都沒有工作。在sql語句中停止擴展* *
確切的腳本是
#!/bin/bash
table_name = $1
delete_sql= "delete * from $table_name;"
echo $delete_sql > abc.sql
你只需要引用變量(和修復周圍=
標誌的間距):
#!/bin/bash
table_name=$1
delete_sql="delete * from $table_name;"
echo "$delete_sql" > abc.sql
如何
echo "delete * from table_name" | sqlplus
或
echo "delete * from table_name" > mystatements.txt
sqlplus @mystatements.txt
在一個側面說明,你並不需要指定*在delete語句 - 匹配行中的所有字段都將被刪除。
+1,表示*在刪除時不需要。 – devnull
你是如何生成的聲明?提供代碼 – SheetJS