Ваша процедура test
имеет 2 входных аргумента. Один имеет тип IN, который предполагается использовать с процедурой, а другой параметр supplier
имеет тип OUT
, что означает, что этот параметр должен содержать значение, которое возвращает Procedure
.
Как объяснил @Barbaros, если вы хотите выполнить процедуру через командную строку SQL, вы можете выполнить следующие действия.
Однако вторым способом, который вы показали, было использование PLSQL Block
.
begin
выполнить тест (2279,: supplierid);
dbms_output.enable;
dbms_output.put_line (поставщик); end;
blockquote>В приведенном выше примере вызова вы должны заметить, что ключевое слово
Execute
используется только при использовании командной строкиSQL
. При использовании блока PLSQL вы можете напрямую вызывать процедуру по ее имени, как показано ниже. Также обратите внимание, что если у вас есть параметрOUT
, вы должны передать параметрOUT
вProcedure
, посколькуProcedure
ожидает 2 аргумента. Смотри ниже демо.declare var varchar2(100); begin test( supplierid => 2279, supplier =>var); dbms_output.enable; dbms_output.put_line(var); End;
char c;
int ascii = (int) c;
s2.data[j]=(char)count;
Символ - это целое число, функции преобразования не требуются.
Возможно, вы ищете функции, отображающие целые числа в виде строки - с использованием шестнадцатеричного, двоичного или десятичного числа. представления?
Вам не нужен функция для получения значения ASCII - просто преобразуйте его в целое число с помощью (неявного) преобразования:
int x = 'A'; // x = 65
int y = '\t'; // x = 9
Чтобы преобразовать число в шестнадцатеричное или десятичное, вы можете использовать любой из членов семейства printf
:
char buffer[32]; // make sure this is big enough!
sprintf(buffer, "%d", 12345); // decimal: buffer is assigned "12345"
sprintf(buffer, "%x", 12345); // hex: buffer is assigned "3039"
Нет встроенной функции для преобразования в двоичную форму; вам придется свернуть свой собственный.
Если вы хотите получить значение ASCII символа в вашем коде, просто поместите этот символ в кавычки
char c = 'a';
Вы можете спутать внутреннее представление с выводом. Чтобы узнать, какое значение имеет символ:
char c = 'A';
cout << c << " has code " << int(c) << endl;
Аналогично для шестнадцатеричных значений - все числа являются шестнадцатеричными числами, поэтому это просто вопрос вывода:
int n = 42;
cout << n << " in hex is " << hex << n << endl;
"Шестнадцатеричный" в операторе вывода - это манипулятор C ++. Существуют манипуляторы для шестнадцатеричного и десятичного (десятичного) числа, но, к сожалению, нет для двоичного.
Что касается шестнадцатеричного и двоичного представления - это просто представления целых чисел. Вероятно, вам нужно что-то вроде printf ("% d", n) и printf ("% x", n) - первый выводит десятичную, а второй шестнадцатеричную версию того же числа. Уточните, что вы пытаетесь сделать -