Oracle插入特殊字符和函数名称

时间:2016-11-23 10:45:36

标签: sql oracle insert escaping special-characters

我目前正在努力将值插入到Oracle数据库的varchar2列中。值是(并且特殊字符......):

with Ada.Streams;
with Ada.Text_IO;

with GNAT.Sockets;

procedure UDP_Server is
   use GNAT.Sockets;
   Server : Socket_Type;
   Address, From : Sock_Addr_Type;
   Data : Ada.Streams.Stream_Element_Array (1 .. 512);
   Last : Ada.Streams.Stream_Element_Offset;
   Watchdog : Natural := 0;
begin
   Create_Socket (Server, Family_Inet, Socket_Datagram);
   Set_Socket_Option
     (Server,
      Socket_Level,
      (Reuse_Address, True));
   Set_Socket_Option
     (Server,
      Socket_Level,
      (Receive_Timeout,
       Timeout => 1.0));
   Address.Addr := Any_Inet_Addr;
   Address.Port := 50001;
   Bind_Socket (Server, Address);
   loop
      begin
         GNAT.Sockets.Receive_Socket (Server, Data, Last, From);
         Ada.Text_IO.Put_Line ("last : " & Last'Img);
         Ada.Text_IO.Put_Line ("from : " & Image (From.Addr));
      exception
         when Socket_Error =>
            Watchdog := Watchdog + 1;
            exit when Watchdog = 10;
      end;
   end loop;
end UDP_Server;

(它是一个QlikView Formular,它应该存储在数据库中。之后我可以用QlikView提取和评估它,但我需要确切的给定格式。)

我已经试图逃避所有'与'等等,但到目前为止它还没有奏效。定义也没有工作。

我还发现: Pulse-density modulation 但没有在那里找到解决方案。

希望有人遇到同样的问题或知道解决方案。

提前致谢!

1 个答案:

答案 0 :(得分:1)

也许你可以试试q quote operator

insert into yourTable(c)
values ( q'['Data\QVD\QVD_'& replace(v_sc_val_ExecutionEnvironment, chr(39),'') &'\VTB_MOD1_RESULT\']').

这样你就不需要转义了,文本应该在输入时完全插入。