使用PLSQL中的转义码在EPSON FX-890IIN上打印代码39条形码

使用PLSQL中的转义码在EPSON FX-890IIN上打印代码39条形码,plsql,barcode,epson,code39,Plsql,Barcode,Epson,Code39,我有一个很长的问题。我们正在使用上面列出的打印机,并试图从中打印代码39条形码。我已经阅读了以下文档 特别是第327页的顶部。我在我的代码中遵循了这个片段,但没有运气。我正在与PLSQL合作,想知道是否有人有任何运气或秘诀。p_字符串的输入形式为xxxxxxxx-xxxxx。x=数字0-9。我最近的一次尝试是删掉BC数据变量,只传入p_字符串,这将是我们想要的输出 FUNCTION get_barcode_epson (p_string IN VARCHAR2) RETURN VARCHAR2

我有一个很长的问题。我们正在使用上面列出的打印机,并试图从中打印代码39条形码。我已经阅读了以下文档 特别是第327页的顶部。我在我的代码中遵循了这个片段,但没有运气。我正在与PLSQL合作,想知道是否有人有任何运气或秘诀。p_字符串的输入形式为xxxxxxxx-xxxxx。x=数字0-9。我最近的一次尝试是删掉BC数据变量,只传入p_字符串,这将是我们想要的输出

FUNCTION get_barcode_epson (p_string IN VARCHAR2) RETURN VARCHAR2 IS
--
  v_print_string       VARCHAR2 (1000);
  escp_bc              VARCHAR2 (20);

  BC_COMMAND   CONSTANT VARCHAR2 (14) := CHR(27)||CHR(40)||CHR(66)||CHR(13)||CHR(0);                       --Barcode command and data length
  BC_TYPE      CONSTANT VARCHAR2 (2)  := CHR(5);                                                           --Barcode type k = Code 39
  BC_WIDTH     CONSTANT VARCHAR2 (2)  := CHR(2);                                                           --Module width m = 2 dots/180 inch
  BC_SPACE     CONSTANT VARCHAR2 (2)  := CHR(0);                                                           --Space adjustments value s = +o dots / 360 inch
  BC_LENGTH    CONSTANT VARCHAR2 (5)  := CHR(125)||CHR(0);                                                 --Bar length v1, v2 = 125 /180 inch
  BC_CTRL_FLG  CONSTANT VARCHAR2 (2)  := CHR(3);                                                           --Control Flags c
--  BC_DATA      CONSTANT VARCHAR2 (20) := CHR(49)||CHR(50)||CHR(65)||CHR(66)||CHR(36)||CHR(37)||CHR(46);                       --Barcode data


  --
  DATA_LENGTH CONSTANT NUMBER := LENGTH (p_string);
--
BEGIN
--
  IF (DATA_LENGTH > 255) THEN RETURN 'TOO LONG'; END IF;
  escp_bc  := BC_COMMAND   ||
              BC_TYPE      ||
              BC_WIDTH     ||
              BC_SPACE     ||
              BC_LENGTH    ||
              BC_CTRL_FLG;  --||
              --BC_DATA;*/
  --
  v_print_string := escp_bc || p_string;
  RETURN v_print_string;
--
END get_barcode_epson;

您的代码可以是独立函数或包函数。由于您没有提到一个包,缩进(缺少缩进)使我得出结论,它是一个独立的函数。但是,声明中缺少必要的命令“create或replace”,该命令用于更正已编译的函数。它包含在一个包中。我把它放在一个函数中,用来显示传入的参数。