Size: a a a

2021 August 20

A

Alex in Powershell Rus
Там у параметра есть поле size и я его даже менял, но все равно возвращается только половина
источник

A

Alex in Powershell Rus
То есть когда добавляешь переменную, там подставляется значение равное количеству символов переменной, я пробовал после добавления, увеличивать значение на 2, но все равно половина вернулась
источник

VG

Vasily Gusev in Powershell Rus
мне кажется это надо ораклистов спрашивать...
источник

A

Alex in Powershell Rus
источник

VG

Vasily Gusev in Powershell Rus
источник
2021 August 21

d

dl in Powershell Rus
в код не всматривался пока, но сразу бы задал 2 вопроса:
1. тип поля? предположу, что varchar2.
2. кодировка БД? предположу, что utf-8.
источник

A

Alex in Powershell Rus
Если ты про указания типа в коде, то там только Варчар доступен, а про кодировку не знаю.
источник

d

dl in Powershell Rus
1. я про тип переменной OUT в хранимой процедуре БД.
2. если есть доступ к БД, кодировку можно посмотреть.
источник

A

Alex in Powershell Rus
В бд кодировка варчар2, а кодировку посмотрю в понедельник. Только на что влияет кодировка?
источник

d

dl in Powershell Rus
если кратко, то можно словить баги на конвертации, если символы русские, которые в utf-8 занимают 2 байта.

покажи весь код, может быть, будет очевидно
источник

A

Alex in Powershell Rus
Не, я использовал только латинские символы
источник

d

dl in Powershell Rus
Весь код если покажешь, может быть, подскажу
источник

A

Alex in Powershell Rus
$asm = [System.Reflection.Assembly]::LoadWithPartialName("System.Data.OracleClient") 
     
$connectionString = "Тут мое подключение";      
$inputString = "foo";

$oracleConnection = new-object System.Data.OracleClient.OracleConnection($connectionString);
$cmd = new-object System.Data.OracleClient.OracleCommand;
$cmd.Connection = $oracleConnection;

$cmd.CommandText = "isFoo";
$cmd.CommandType = [System.Data.CommandType]::StoredProcedure;

$cmd.Parameters.Add("inputString", [System.Data.OracleClient.OracleType]::VarChar) | out-null;
$cmd.Parameters["inputString"].Direction = [System.Data.ParameterDirection]::Input;
$cmd.Parameters["inputString"].Value = $inputString;
     
$cmd.Parameters.Add("outString", [System.Data.OracleClient.OracleType]::VarChar)  | out-null;  
$cmd.Parameters["outString"].Direction = [System.Data.ParameterDirection]::Output;
   
$oracleConnection.Open();
$cmd.ExecuteNonQuery() | out-null;
$oracleConnection.Close();

$result = $cmd.Parameters["outString"].Value;
write-host "result of isFoo($inputString) is $result" -foregroundcolor yellow;
источник
2021 August 22

d

dl in Powershell Rus
И код хранимки еще

И пример запуска с результатом
источник

A

Alex in Powershell Rus
create or replace PROCEDURE  isFoo (inputString IN  VARCHAR2, outString OUT VARCHAR2) IS  
BEGIN
 outString := inputString;
END isFoo;


Не понял по поводу результат, что именно нужно?
источник

d

dl in Powershell Rus
Запуск скрипта, передача параметра и вывод
источник

A

Alex in Powershell Rus
это не смогу показать, т.к. база на рабочем ПК.
источник

A

Alex in Powershell Rus
Но мне не понятно зачем? В коде выше все описано
источник

A

Alex in Powershell Rus
Единственное, что я вместо слова "isFoo" использовал "text"
источник
2021 August 23

A

Alex in Powershell Rus
В общем проведя ещё пару тестов я выяснил, что он в принципе возвращает только половину текста из процедуры, не важно сколько там символов будет в возвращаемой переменной
источник